{
  "openapi": "3.0.1",
  "info": {
    "title": "Masking API",
    "description": "Schema for the Continuous Compliance Engine API",
    "version": "5.1.51"
  },
  "servers": [
    {
      "url": "/masking/api/v5.1.51"
    }
  ],
  "security": [
    {
      "api_key": []
    }
  ],
  "paths": {
    "/algorithms": {
      "get": {
        "tags": [
          "algorithm"
        ],
        "summary": "Get all algorithms",
        "operationId": "getAllAlgorithms",
        "parameters": [
          {
            "name": "mask_type",
            "in": "query",
            "description": "The data type of value this algorithm can mask.",
            "schema": {
              "type": "string",
              "enum": [
                "BIG_DECIMAL",
                "LOCAL_DATE_TIME",
                "STRING",
                "BYTE_BUFFER",
                "GENERIC_DATA_ROW"
              ]
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get algorithms. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlgorithmList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "algorithm"
        ],
        "summary": "Create algorithm",
        "operationId": "createAlgorithm",
        "requestBody": {
          "description": "The algorithm to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Algorithm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/algorithms/{algorithmName}": {
      "get": {
        "tags": [
          "algorithm"
        ],
        "summary": "Get algorithm by name",
        "operationId": "getAlgorithm",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the algorithm to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Algorithm"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "algorithm"
        ],
        "summary": "Update algorithm by name",
        "operationId": "updateAlgorithm",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the algorithm to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated algorithm",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Algorithm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "algorithm"
        ],
        "summary": "Delete algorithm by name",
        "operationId": "deleteAlgorithm",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the algorithm to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/algorithms/migration": {
      "get": {
        "tags": [
          "algorithm"
        ],
        "summary": "Get a list of all algorithms that support migration to a new framework",
        "operationId": "getAvailableMigrations",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlgorithmMigrationList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/algorithms/{algorithmName}/migration": {
      "post": {
        "tags": [
          "algorithm"
        ],
        "summary": "Create a migrated copy of an existing legacy algorithm",
        "operationId": "migrateAlgorithm",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the algorithm to be migrated.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "newAlgorithmName",
            "in": "query",
            "description": "The name of the new algorithm to be created by the migration process.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/algorithms/{algorithmName}/randomize-key": {
      "put": {
        "tags": [
          "algorithm"
        ],
        "summary": "Randomize algorithm key by name",
        "operationId": "randomizeAlgorithmKey",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the algorithm who's key should be randomized",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Algorithm"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/algorithms/{algorithmName}/usage": {
      "get": {
        "tags": [
          "algorithm"
        ],
        "summary": "Generate a report listing all usage of an algorithm on the masking engine",
        "operationId": "getAlgorithmUsageReport",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the algorithm",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeAssignmentDetail",
            "in": "query",
            "description": "Whether to include extended, human-readable algorithm assignment detail in the report. File and mainframe format usages are expanded to show each usage across environments, rulesets and files. The content and ordering of these details are subject to change.",
            "required": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "excludeChainedAlgorithms",
            "in": "query",
            "description": "Whether to exclude chained algorithm. This parameter will skip the computation of referencing algorithms",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "environmentFilter",
            "in": "query",
            "description": "Report only usage occurring within the specified environment(s). When the algorithm is used in a file format, all usage of that file format is reported so long as it is referenced by any environment matching the filter. Filtering by environment excludes all domain and algorithm reference usage.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "rulesetFilter",
            "in": "query",
            "description": "Report only usage occurring within the specified ruleset(s). When the algorithm is used in a file format, all usage of that file format is reported so long as it is referenced by any ruleset matching the filter. Filtering by ruleset excludes all domain and algorithm reference usage.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlgorithmUsageReport"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "algorithm"
        ],
        "summary": "Update ALL usage on the engine of the chosen algorithm to the replacement algorithm",
        "operationId": "updateAlgorithmUsage",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the algorithm",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "replacementAlgorithmName",
            "in": "query",
            "description": "The name of the replacement algorithm",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ignoreIncompatibleTypes",
            "in": "query",
            "description": "Update usage even when the original and new algorithms have incompatible masking types.",
            "required": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "environmentFilter",
            "in": "query",
            "description": "Only update usage occurring within the specified environment(s). When an environment filter is applied, domain and algorithm reference usage is not updated. This operation will fail if any file format referencing the algorithm is used from environments that don't match the filter.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "rulesetFilter",
            "in": "query",
            "description": "Only update usage occurring within the specified ruleset(s). When a ruleset filter is applied, domain and algorithm reference usage is not updated. This operation will fail if any file format referencing the algorithm is used from rulesets that don't match the filter.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlgorithmUsageReport"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/algorithms/{algorithmName}/export-lookup-values": {
      "post": {
        "tags": [
          "algorithm"
        ],
        "summary": "Export lookup values for secure lookup algorithm",
        "operationId": "exportValues",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the algorithm",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/algorithms/validate": {
      "post": {
        "tags": [
          "algorithm"
        ],
        "summary": "Validate algorithm",
        "operationId": "validateAlgorithm",
        "requestBody": {
          "description": "The algorithm to validate",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Algorithm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlgorithmValidation"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAlgorithmsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.AlgorithmConverter",
        "x-validator-class": "com.dmsuite.web.validators.AlgorithmValidator",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/algorithm/frameworks/": {
      "get": {
        "tags": [
          "algorithm"
        ],
        "summary": "Get all algorithm frameworks",
        "operationId": "getAllAlgorithmFrameworks",
        "parameters": [
          {
            "name": "mask_type",
            "in": "query",
            "description": "Return only frameworks that mask the specified data type.",
            "schema": {
              "type": "string",
              "enum": [
                "BIG_DECIMAL",
                "LOCAL_DATE_TIME",
                "STRING",
                "BYTE_BUFFER",
                "GENERIC_DATA_ROW"
              ]
            }
          },
          {
            "name": "include_schema",
            "in": "query",
            "description": "Whether to include each algorithm framework's JSON schema in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get algorithm frameworks. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlgorithmFrameworkList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenAlgorithmController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.AlgorithmFrameworkConverter",
        "x-operator-class": "com.dmsuite.manager.AlgorithmManager",
        "x-validator-class": "com.dmsuite.web.validators.AlgorithmValidator",
        "x-manager-needs-user": true,
        "x-audit-ignore-return": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-target": "ALGORITHM",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/algorithm/frameworks/id/{frameworkId}": {
      "get": {
        "tags": [
          "algorithm"
        ],
        "summary": "Get algorithm framework by frameworkId",
        "operationId": "getAlgorithmFramework",
        "parameters": [
          {
            "name": "frameworkId",
            "in": "path",
            "description": "The id of the framework",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "include_schema",
            "in": "query",
            "description": "Whether to include each algorithm framework's JSON schema in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlgorithmFramework"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenAlgorithmController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.AlgorithmFrameworkConverter",
        "x-operator-class": "com.dmsuite.manager.AlgorithmManager",
        "x-validator-class": "com.dmsuite.web.validators.AlgorithmValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET",
        "x-audit-target": "ALGORITHM",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/application-logs": {
      "get": {
        "tags": [
          "logging"
        ],
        "summary": "Get all logs. Note that the logs will be returned in order from most recent to least recent.",
        "operationId": "getAllLogs",
        "parameters": [
          {
            "name": "log_level",
            "in": "query",
            "description": "The log level of the log file. Note that, if this parameter is excluded, the log files will be returned in alphabetical order with respect to their log level.",
            "schema": {
              "type": "string",
              "enum": [
                "DEBUG",
                "ERROR",
                "INFO",
                "WARN"
              ]
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get logs. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogFileInfoList"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerApplicationLogsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/applications": {
      "get": {
        "tags": [
          "application"
        ],
        "summary": "Get all applications",
        "operationId": "getAllApplications",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get applications. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        },
        "x-swagger-router-controller": "GenApplicationsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ApplicationConverter",
        "x-operator-class": "com.dmsuite.manager.ApplicationManager",
        "x-validator-class": "com.dmsuite.web.validators.ApplicationValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "APPLICATION",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "application"
        ],
        "summary": "Create application",
        "operationId": "createApplication",
        "requestBody": {
          "description": "The application to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Application"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenApplicationsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ApplicationConverter",
        "x-operator-class": "com.dmsuite.manager.ApplicationManager",
        "x-validator-class": "com.dmsuite.web.validators.ApplicationValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "APPLICATION",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/applications/{applicationId}": {
      "get": {
        "tags": [
          "application"
        ],
        "summary": "Get application by ID",
        "operationId": "getApplicationById",
        "parameters": [
          {
            "name": "applicationId",
            "in": "path",
            "description": "The ID of the application to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenApplicationsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ApplicationConverter",
        "x-operator-class": "com.dmsuite.manager.ApplicationManager",
        "x-validator-class": "com.dmsuite.web.validators.ApplicationValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "APPLICATION",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "delete": {
        "tags": [
          "application"
        ],
        "summary": "Delete application by ID",
        "operationId": "deleteApplication",
        "parameters": [
          {
            "name": "applicationId",
            "in": "path",
            "description": "The ID of the application to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenApplicationsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ApplicationConverter",
        "x-operator-class": "com.dmsuite.manager.ApplicationManager",
        "x-validator-class": "com.dmsuite.web.validators.ApplicationValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-target": "APPLICATION",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/application-settings": {
      "get": {
        "tags": [
          "applicationSettings"
        ],
        "summary": "Get all application settings",
        "operationId": "getAllApplicationSettings",
        "parameters": [
          {
            "name": "setting_group",
            "in": "query",
            "description": "The group of the setting",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get application settings. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationSettingsList"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerApplicationSettingsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ApplicationSettingsConverter",
        "x-operator-class": "com.dmsuite.manager.ApplicationSettingsManager",
        "x-validator-class": "com.dmsuite.web.validators.ApplicationSettingsValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "APPLICATION_SETTING",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/application-settings/{settingId}": {
      "get": {
        "tags": [
          "applicationSettings"
        ],
        "summary": "Get application setting by ID",
        "operationId": "getApplicationSettingById",
        "parameters": [
          {
            "name": "settingId",
            "in": "path",
            "description": "The ID of the setting",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationSettings"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerApplicationSettingsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ApplicationSettingsConverter",
        "x-operator-class": "com.dmsuite.manager.ApplicationSettingsManager",
        "x-validator-class": "com.dmsuite.web.validators.ApplicationSettingsValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "APPLICATION_SETTING",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "applicationSettings"
        ],
        "summary": "Update application setting by ID",
        "operationId": "updateApplicationSetting",
        "parameters": [
          {
            "name": "settingId",
            "in": "path",
            "description": "The ID of the setting",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated application setting",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplicationSettings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationSettings"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerApplicationSettingsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ApplicationSettingsConverter",
        "x-operator-class": "com.dmsuite.manager.ApplicationSettingsManager",
        "x-validator-class": "com.dmsuite.web.validators.ApplicationSettingsValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "APPLICATION_SETTING",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/async-tasks": {
      "get": {
        "tags": [
          "asyncTask"
        ],
        "summary": "Get all asyncTasks",
        "operationId": "getAllAsyncTasks",
        "parameters": [
          {
            "name": "operation",
            "in": "query",
            "description": "The operation type for which to get async tasks.",
            "schema": {
              "type": "string",
              "enum": [
                "ALGORITHM_CREATE",
                "ALGORITHM_MIGRATE",
                "ALGORITHM_UPDATE",
                "EXPORT",
                "IMPORT",
                "RULESET_REFRESH",
                "SUPPORT_BUNDLE_GENERATE",
                "TABLE_BULK_UPDATE"
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "The status type for which to get async tasks.",
            "schema": {
              "type": "string",
              "enum": [
                "CANCELLED",
                "FAILED",
                "RUNNING",
                "SUCCEEDED",
                "WAITING"
              ]
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get asyncTasks. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTaskList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAsyncTasksController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/async-tasks/{asyncTaskId}": {
      "get": {
        "tags": [
          "asyncTask"
        ],
        "summary": "Get asyncTask by ID",
        "operationId": "getAsyncTask",
        "parameters": [
          {
            "name": "asyncTaskId",
            "in": "path",
            "description": "The ID of the asyncTask to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAsyncTasksController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/async-tasks/{asyncTaskId}/cancel": {
      "put": {
        "tags": [
          "asyncTask"
        ],
        "summary": "Cancel asyncTask by ID",
        "operationId": "cancelAsyncTask",
        "parameters": [
          {
            "name": "asyncTaskId",
            "in": "path",
            "description": "The ID of the asyncTask to cancel",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerAsyncTasksController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/audit-logs": {
      "get": {
        "tags": [
          "logging"
        ],
        "summary": "Get all audit logs",
        "operationId": "getAuditLogs",
        "parameters": [
          {
            "name": "user_name",
            "in": "query",
            "description": "The name of the user that took the action for this entry.",
            "schema": {
              "maxLength": 1000,
              "type": "string"
            }
          },
          {
            "name": "action_type",
            "in": "query",
            "description": "The type of action that occurred for this Audit Log entry.",
            "schema": {
              "type": "string",
              "enum": [
                "CANCEL",
                "CREATE",
                "CONFIG_INSTALL",
                "CONNECT",
                "DELETE",
                "DISCONNECT",
                "EDIT",
                "EXPORT",
                "FORGOT_PASSWORD",
                "GET",
                "GET_ALL",
                "IMPORT",
                "LOCK",
                "DISABLE",
                "LOGIN",
                "LOGOUT",
                "RESET_PASSWORD",
                "RUN",
                "TEST",
                "UNLOCK"
              ]
            }
          },
          {
            "name": "target",
            "in": "query",
            "description": "The type object or operation that the action occurred on for this Audit Log entry.",
            "schema": {
              "type": "string",
              "enum": [
                "ALGORITHM",
                "ANALYTIC",
                "APPLICATION",
                "APPLICATION_LOG",
                "APPLICATION_SETTING",
                "ASYNC_TASK",
                "AUDIT_LOG",
                "BILLING_PERIOD",
                "BILLING_REPORT",
                "BILLING_USAGE",
                "CLASSIFIER",
                "COLUMN_METADATA",
                "CREDENTIAL_PATH",
                "DATABASE_CONNECTOR",
                "DATABASE_RULESET",
                "DATABASE_USAGE",
                "DEBUG_BREAKPOINT",
                "DOMAIN",
                "ENCRYPTION_KEY",
                "ENVIRONMENT",
                "EXECUTION",
                "EXECUTION_COMPONENT_LOG",
                "EXECUTION_EVENT",
                "EXECUTION_LOG",
                "EXECUTION_REPORT",
                "FILE_CONNECTOR",
                "FILE_DOWNLOAD",
                "FILE_FIELD_METADATA",
                "FILE_FORMAT",
                "FILE_METADATA",
                "FILE_RULESET",
                "FILE_UPLOAD",
                "INSTALLATION",
                "INVENTORY_APPROVAL",
                "JDBC_DRIVER",
                "JOB_TASK",
                "JOB_UTILIZATION_REPORT",
                "KNOWLEDGE_BASE_INFO",
                "LDAP",
                "LICENSE",
                "MAINFRAME_DATASET_CONNECTOR",
                "MAINFRAME_DATASET_FIELD_METADATA",
                "MAINFRAME_DATASET_FORMAT",
                "MAINFRAME_DATASET_METADATA",
                "MAINFRAME_DATASET_RECORD_TYPE",
                "MAINFRAME_DATASET_RULESET",
                "MASKING_JOB",
                "MONITOR_JOBS_INFORMATION",
                "MONITOR_TASK",
                "MOUNT_FILESYSTEM",
                "NON_CONFORMING_DATA_SAMPLE",
                "OAUTH2",
                "PASSWORD_VAULT",
                "PLUGIN",
                "PROFILE_EXPRESSION",
                "PROFILE_TYPE_EXPRESSION",
                "PROFILE_JOB",
                "PROFILE_RESULT",
                "PROFILE_SET",
                "RECORD_TYPE",
                "RECORD_TYPE_QUALIFIER",
                "REIDENTIFICATION_JOB",
                "ROLE",
                "SSH_KEY",
                "SSO",
                "SUPPORT_BUNDLE",
                "SYNCABLE_OBJECT",
                "SYSTEM_INFORMATION",
                "TABLE_METADATA",
                "TASK",
                "TOKENIZATION_JOB",
                "UNIFIED_AUTH",
                "USER"
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "The status of the action that occurred for this Audit Log entry. This can change over time as ATTEMPTED actions are completed.",
            "schema": {
              "type": "string",
              "enum": [
                "ATTEMPTED",
                "FAILED",
                "SUCCEEDED"
              ]
            }
          },
          {
            "name": "start_time",
            "in": "query",
            "description": "The date after which all audit logs should be retrieved. Note that the format of the string should be the same date-time format as in the response bodies.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end_time",
            "in": "query",
            "description": "The date before which all audit logs should be retrieved. Note that the format of the string should be the same date-time format as in the response bodies.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search_string",
            "in": "query",
            "description": "Search for activity description containing substring.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "Sort by field.",
            "schema": {
              "type": "string",
              "enum": [
                "activityTime",
                "userName",
                "status",
                "activityDescription",
                "identity"
              ]
            }
          },
          {
            "name": "sort_dir",
            "in": "query",
            "description": "Sort by direction.",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get logs. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditLogList"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "GenAuditLogsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.AuditLogConverter",
        "x-operator-class": "com.dmsuite.manager.UserActionManager",
        "x-validator-class": "com.dmsuite.web.validators.AuditLogValidator",
        "x-audit-ignored": true,
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/billing-usage": {
      "get": {
        "tags": [
          "billingUsage"
        ],
        "summary": "Get all billing usage",
        "operationId": "getAllBillingUsage",
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "description": "The date after which all billing usage should be retrieved. Date format is 'yyyy-MM-dd'.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "The date before which all billing usage should be retrieved. Date format is 'yyyy-MM-dd'.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to billing usage. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting property if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingUsageList"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "GenBillingUsageController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.BillingUsageConverter",
        "x-operator-class": "com.dmsuite.manager.BillingUsageManager",
        "x-validator-class": "com.dmsuite.web.validators.BillingUsageValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "BILLING_USAGE"
      }
    },
    "/classifiers": {
      "get": {
        "tags": [
          "classifier"
        ],
        "summary": "Get all classifiers",
        "operationId": "getAllClassifiers",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get classifiers. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClassifierList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerClassifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ClassifierConverter",
        "x-operator-class": "com.dmsuite.manager.ClassifierManager",
        "x-validator-class": "com.dmsuite.web.validators.ClassifierValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "CLASSIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "classifier"
        ],
        "summary": "Create classifier",
        "operationId": "createClassifier",
        "requestBody": {
          "description": "The classifier to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Classifier"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Classifier"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerClassifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ClassifierConverter",
        "x-operator-class": "com.dmsuite.manager.ClassifierManager",
        "x-validator-class": "com.dmsuite.web.validators.ClassifierValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "CLASSIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/classifiers/{classifierId}": {
      "get": {
        "tags": [
          "classifier"
        ],
        "summary": "Get classifier by ID",
        "operationId": "getClassifierById",
        "parameters": [
          {
            "name": "classifierId",
            "in": "path",
            "description": "The ID of the classifier to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Classifier"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerClassifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ClassifierConverter",
        "x-operator-class": "com.dmsuite.manager.ClassifierManager",
        "x-validator-class": "com.dmsuite.web.validators.ClassifierValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "CLASSIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "classifier"
        ],
        "summary": "Update classifier by ID",
        "operationId": "updateClassifier",
        "parameters": [
          {
            "name": "classifierId",
            "in": "path",
            "description": "The ID of the classifier to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The classifier",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Classifier"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Classifier"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerClassifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ClassifierConverter",
        "x-operator-class": "com.dmsuite.manager.ClassifierManager",
        "x-validator-class": "com.dmsuite.web.validators.ClassifierValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "CLASSIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "classifier"
        ],
        "summary": "Delete classifier by ID",
        "operationId": "deleteClassifier",
        "parameters": [
          {
            "name": "classifierId",
            "in": "path",
            "description": "The ID of the classifier to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerClassifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ClassifierConverter",
        "x-operator-class": "com.dmsuite.manager.ClassifierManager",
        "x-validator-class": "com.dmsuite.web.validators.ClassifierValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-target": "CLASSIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/classifiers/{classifierId}/copy": {
      "post": {
        "tags": [
          "classifier"
        ],
        "summary": "Copy classifier by ID",
        "operationId": "copyClassifier",
        "parameters": [
          {
            "name": "classifierId",
            "in": "path",
            "description": "The ID of the classifier to copy",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The name of the classifier to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClassifierCopy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Classifier"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerClassifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ClassifierConverter",
        "x-operator-class": "com.dmsuite.manager.ClassifierManager",
        "x-validator-class": "com.dmsuite.web.validators.ClassifierValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "CLASSIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/classifiers/{classifierId}/export-files": {
      "post": {
        "tags": [
          "classifier"
        ],
        "summary": "Export a zip file containing the files used for the specified classifier",
        "operationId": "exportClassifierFiles",
        "parameters": [
          {
            "name": "classifierId",
            "in": "path",
            "description": "The ID of the classifier",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerClassifiersController",
        "x-audit-action-type": "EXPORT",
        "x-audit-target": "CLASSIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/classifiers/frameworks": {
      "get": {
        "tags": [
          "classifier"
        ],
        "summary": "Get all classifier frameworks",
        "operationId": "getAllClassifierFrameworks",
        "parameters": [
          {
            "name": "include_schema",
            "in": "query",
            "description": "Whether to include each classifier framework's JSON schema in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get classifier frameworks. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClassifierFrameworkList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerClassifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ClassifierFrameworkConverter",
        "x-operator-class": "com.dmsuite.manager.ClassifierFrameworkManager",
        "x-validator-class": "com.dmsuite.web.validators.ClassifierFrameworkValidator",
        "x-manager-needs-user": true,
        "x-audit-ignore-return": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-target": "CLASSIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/classifiers/frameworks/{frameworkId}": {
      "get": {
        "tags": [
          "classifier"
        ],
        "summary": "Get classifier framework by frameworkId",
        "operationId": "getClassifierFramework",
        "parameters": [
          {
            "name": "frameworkId",
            "in": "path",
            "description": "The id of the framework",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "include_schema",
            "in": "query",
            "description": "Whether to include each classifier framework's JSON schema in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClassifierFramework"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerClassifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ClassifierFrameworkConverter",
        "x-operator-class": "com.dmsuite.manager.ClassifierFrameworkManager",
        "x-validator-class": "com.dmsuite.web.validators.ClassifierFrameworkValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET",
        "x-audit-target": "CLASSIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/classifiers/search": {
      "post": {
        "tags": [
          "classifier"
        ],
        "summary": "Search classifiers",
        "operationId": "searchClassifiers",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get classifiers. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The field to sort results by. A property name with a prepended '-' signifies a descending order.",
            "schema": {
              "type": "string",
              "enum": [
                "classifierId",
                "-classifierId",
                "classifierName",
                "-classifierName",
                "frameworkId",
                "-frameworkId",
                "createdDate",
                "-createdDate",
                "domainName",
                "-domainName",
                "description",
                "-description"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "A request body containing a filter expression. Refer to the documentation to learn the syntax for filter-queries.\n Supported filterable attributes: \"classifierId\", \"classifierName\", \"frameworkId\", \"createdDate\", \"domainName\", \"description\"",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Filter"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClassifierList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerClassifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ClassifierConverter",
        "x-operator-class": "com.dmsuite.manager.ClassifierManager",
        "x-validator-class": "com.dmsuite.web.validators.ClassifierValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-target": "CLASSIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "filter"
      }
    },
    "/column-metadata": {
      "get": {
        "tags": [
          "columnMetadata"
        ],
        "summary": "Get all column metadata",
        "operationId": "getAllColumnMetadata",
        "parameters": [
          {
            "name": "table_metadata_id",
            "in": "query",
            "description": "The ID of the table metadata to get all column metadata from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "is_masked",
            "in": "query",
            "description": "Get only masked column metadata when this is true and only unmasked column metadata when this is false",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get column metadata. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ColumnMetadataList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenColumnMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ColumnMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.ColumnMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.ColumnMetadataValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "COLUMN_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/column-metadata/{columnMetadataId}": {
      "get": {
        "tags": [
          "columnMetadata"
        ],
        "summary": "Get column metadata by ID",
        "operationId": "getColumnMetadataById",
        "parameters": [
          {
            "name": "columnMetadataId",
            "in": "path",
            "description": "The ID of the column metadata to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ColumnMetadata"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenColumnMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ColumnMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.ColumnMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.ColumnMetadataValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "COLUMN_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "columnMetadata"
        ],
        "summary": "Update column metadata by ID",
        "operationId": "updateColumnMetadata",
        "parameters": [
          {
            "name": "columnMetadataId",
            "in": "path",
            "description": "The ID of the column metadata to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The updated column metadata",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ColumnMetadata"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ColumnMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenColumnMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ColumnMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.ColumnMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.ColumnMetadataValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "EDIT",
        "x-audit-target": "COLUMN_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/credential-paths": {
      "get": {
        "tags": [
          "credentialPath"
        ],
        "summary": "Get all credential paths",
        "operationId": "getAllCredentialPaths",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get credential paths. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialPathList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenCredentialPathsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.CredentialPathConverter",
        "x-operator-class": "com.dmsuite.manager.CredentialPathManager",
        "x-validator-class": "com.dmsuite.web.validators.CredentialPathValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "CREDENTIAL_PATH",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "credentialPath"
        ],
        "summary": "Create credential path",
        "operationId": "createCredentialPath",
        "requestBody": {
          "description": "The credential path to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialPath"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialPath"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenCredentialPathsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.CredentialPathConverter",
        "x-operator-class": "com.dmsuite.manager.CredentialPathManager",
        "x-validator-class": "com.dmsuite.web.validators.CredentialPathValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "CREDENTIAL_PATH",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/configuration-install": {
      "post": {
        "tags": [
          "configuration"
        ],
        "summary": "Install a configuration, like a profile set configuration zip",
        "operationId": "installConfig",
        "requestBody": {
          "description": "The configuration to install",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfigurationInstall"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfigurationInstall"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenConfigurationInstallController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ConfigurationInstallConverter",
        "x-operator-class": "com.dmsuite.manager.ConfigurationInstallManager",
        "x-validator-class": "com.dmsuite.web.validators.ConfigurationInstallValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "INSTALLATION"
      }
    },
    "/credential-paths/{credentialPathId}": {
      "get": {
        "tags": [
          "credentialPath"
        ],
        "summary": "Get credential path by ID",
        "operationId": "getCredentialPath",
        "parameters": [
          {
            "name": "credentialPathId",
            "in": "path",
            "description": "The ID of the credential path to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialPath"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenCredentialPathsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.CredentialPathConverter",
        "x-operator-class": "com.dmsuite.manager.CredentialPathManager",
        "x-validator-class": "com.dmsuite.web.validators.CredentialPathValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "CREDENTIAL_PATH",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "credentialPath"
        ],
        "summary": "Update credential path by ID",
        "operationId": "updateCredentialPath",
        "parameters": [
          {
            "name": "credentialPathId",
            "in": "path",
            "description": "The ID of the credential path to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated credential path",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialPath"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialPath"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenCredentialPathsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.CredentialPathConverter",
        "x-operator-class": "com.dmsuite.manager.CredentialPathManager",
        "x-validator-class": "com.dmsuite.web.validators.CredentialPathValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "CREDENTIAL_PATH",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "credentialPath"
        ],
        "summary": "Delete credential path by ID",
        "operationId": "deleteCredentialPath",
        "parameters": [
          {
            "name": "credentialPathId",
            "in": "path",
            "description": "The ID of the credential path to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenCredentialPathsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.CredentialPathConverter",
        "x-operator-class": "com.dmsuite.manager.CredentialPathManager",
        "x-validator-class": "com.dmsuite.web.validators.CredentialPathValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getCredentialPath",
        "x-audit-target": "CREDENTIAL_PATH",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/database-connectors": {
      "get": {
        "tags": [
          "databaseConnector"
        ],
        "summary": "Get all database connectors",
        "operationId": "getAllDatabaseConnectors",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get database connectors. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the environment to get all database connectors from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseConnectorList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenDatabaseConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DatabaseConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.DatabaseConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.DatabaseConnectorValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "DATABASE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "databaseConnector"
        ],
        "summary": "Create database connector",
        "operationId": "createDatabaseConnector",
        "requestBody": {
          "description": "The database connector to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatabaseConnector"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseConnector"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenDatabaseConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DatabaseConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.DatabaseConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.DatabaseConnectorValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "DATABASE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/database-connectors/{databaseConnectorId}": {
      "get": {
        "tags": [
          "databaseConnector"
        ],
        "summary": "Get database connector by ID",
        "operationId": "getDatabaseConnectorById",
        "parameters": [
          {
            "name": "databaseConnectorId",
            "in": "path",
            "description": "The ID of the database connector to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseConnector"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenDatabaseConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DatabaseConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.DatabaseConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.DatabaseConnectorValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "DATABASE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "databaseConnector"
        ],
        "summary": "Update database connector by ID",
        "operationId": "updateDatabaseConnector",
        "parameters": [
          {
            "name": "databaseConnectorId",
            "in": "path",
            "description": "The ID of the database connector to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated database connector",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatabaseConnector"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseConnector"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenDatabaseConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DatabaseConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.DatabaseConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.DatabaseConnectorValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "DATABASE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "databaseConnector"
        ],
        "summary": "Delete database connector by ID",
        "description": "Deletes database connector with given ID. This will also delete all rule sets and jobs which are using this connector.",
        "operationId": "deleteDatabaseConnector",
        "parameters": [
          {
            "name": "databaseConnectorId",
            "in": "path",
            "description": "The ID of the database connector to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenDatabaseConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DatabaseConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.DatabaseConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.DatabaseConnectorValidator",
        "x-manager-needs-user": true,
        "x-manager-needs-request-ip": true,
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getDatabaseConnectorById",
        "x-audit-target": "DATABASE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/database-connectors/{databaseConnectorId}/fetch": {
      "get": {
        "tags": [
          "databaseConnector"
        ],
        "summary": "Fetch all accessible table names",
        "description": "Note that only the names of tables that are accessible by the database user will be returned",
        "operationId": "fetchTableMetadata",
        "parameters": [
          {
            "name": "databaseConnectorId",
            "in": "path",
            "description": "The ID of the database connector to fetch the tables for",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "hideExisting",
            "in": "query",
            "description": "This flag specifies fetching only table names that are not already part of a particular ruleset.",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "rulesetId",
            "in": "query",
            "description": "Ruleset ID to check if tables is already added. Required in case of hideExisting is set to true.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenDatabaseConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DatabaseConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.DatabaseConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.DatabaseConnectorValidator",
        "x-audit-action-type": "GET",
        "x-audit-ignore-return": true,
        "x-audit-target": "DATABASE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/database-connectors/{databaseConnectorId}/properties": {
      "get": {
        "tags": [
          "databaseConnector"
        ],
        "summary": "Get supported connection properties for database connector by ID",
        "description": "A list of connection properties supported by the database connector's underlying JDBC driver.",
        "operationId": "getConnectionProperties",
        "parameters": [
          {
            "name": "databaseConnectorId",
            "in": "path",
            "description": "The ID of the database connector to retrieve supported connection properties",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionPropertiesList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenDatabaseConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DatabaseConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.DatabaseConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.DatabaseConnectorValidator",
        "x-audit-action-type": "GET",
        "x-audit-ignore-return": true,
        "x-audit-target": "DATABASE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/database-connectors/{databaseConnectorId}/test": {
      "post": {
        "tags": [
          "databaseConnector"
        ],
        "summary": "Test database connector by ID",
        "description": "Test if a database connector is valid.",
        "operationId": "testDatabaseConnector",
        "parameters": [
          {
            "name": "databaseConnectorId",
            "in": "path",
            "description": "The ID of the database connector to test",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The database connector configuration to test. This field is optional. If null or empty, the existing databaseConnectorId will be tested. If a connector configuration is supplied without a password, then the password associated with the databaseConnectorId will be used.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatabaseConnector"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TestConnectorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenDatabaseConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DatabaseConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.DatabaseConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.DatabaseConnectorValidator",
        "x-audit-action-type": "TEST",
        "x-audit-ignore-return": true,
        "x-audit-target": "DATABASE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/database-connectors/test": {
      "post": {
        "tags": [
          "databaseConnector"
        ],
        "summary": "Test an unsaved database connector",
        "operationId": "testUnsavedDatabaseConnector",
        "requestBody": {
          "description": "The database connector to test",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatabaseConnector"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TestConnectorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenDatabaseConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DatabaseConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.DatabaseConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.DatabaseConnectorValidator",
        "x-audit-action-type": "TEST",
        "x-audit-ignore-return": true,
        "x-audit-target": "DATABASE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/database-rulesets": {
      "get": {
        "tags": [
          "databaseRuleset"
        ],
        "summary": "Get all database rulesets",
        "operationId": "getAllDatabaseRulesets",
        "parameters": [
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the environment to get all database rulesets from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get database rulesets. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseRulesetList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerDatabaseRulesetsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "databaseRuleset"
        ],
        "summary": "Create database ruleset",
        "operationId": "createDatabaseRuleset",
        "requestBody": {
          "description": "The database ruleset to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatabaseRuleset"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseRuleset"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerDatabaseRulesetsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/database-rulesets/{databaseRulesetId}": {
      "get": {
        "tags": [
          "databaseRuleset"
        ],
        "summary": "Get database ruleset by ID",
        "operationId": "getDatabaseRulesetById",
        "parameters": [
          {
            "name": "databaseRulesetId",
            "in": "path",
            "description": "The ID of the database ruleset to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseRuleset"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerDatabaseRulesetsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "databaseRuleset"
        ],
        "summary": "Update database ruleset",
        "operationId": "updateDatabaseRuleset",
        "parameters": [
          {
            "name": "databaseRulesetId",
            "in": "path",
            "description": "The ID of the database ruleset to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated form of the database ruleset",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatabaseRuleset"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseRuleset"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerDatabaseRulesetsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "databaseRuleset"
        ],
        "summary": "Delete database ruleset by ID",
        "operationId": "deleteDatabaseRuleset",
        "parameters": [
          {
            "name": "databaseRulesetId",
            "in": "path",
            "description": "The ID of the database ruleset to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerDatabaseRulesetsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/database-rulesets/{databaseRulesetId}/bulk-table-update": {
      "put": {
        "tags": [
          "databaseRuleset"
        ],
        "summary": "Update the set of tables and their attributes associated with a database ruleset in bulk",
        "operationId": "bulkTableUpdate",
        "parameters": [
          {
            "name": "databaseRulesetId",
            "in": "path",
            "description": "The ID of the database ruleset to update the tables for",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The exact list of tables to put in the ruleset. Note that existing tables for this ruleset not in this list will be deleted",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TableMetadataBulkInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerDatabaseRulesetsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/database-rulesets/{databaseRulesetId}/refresh": {
      "put": {
        "tags": [
          "databaseRuleset"
        ],
        "summary": "Refresh database ruleset by ID",
        "operationId": "refreshDatabaseRuleset",
        "parameters": [
          {
            "name": "databaseRulesetId",
            "in": "path",
            "description": "The ID of the database ruleset to refresh",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerDatabaseRulesetsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/database-rulesets/{databaseRulesetId}/copy": {
      "put": {
        "tags": [
          "databaseRuleset"
        ],
        "summary": "Copy database ruleset by ID",
        "operationId": "copyDatabaseRuleset",
        "parameters": [
          {
            "name": "databaseRulesetId",
            "in": "path",
            "description": "The ID of the database ruleset to copy",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The name of the ruleset. This must be unique within an environment.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatabaseRulesetCopy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseRuleset"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerDatabaseRulesetsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/database-rulesets/{databaseRulesetId}/csvExport": {
      "post": {
        "tags": [
          "databaseRuleset"
        ],
        "summary": "Export database Ruleset inventory by ID",
        "operationId": "csvDatabaseExport",
        "parameters": [
          {
            "name": "databaseRulesetId",
            "in": "path",
            "description": "The ID of the database ruleset to import",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The name of the exported file",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatabaseRulesetCSVExport"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseRulesetCSVExport"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerDatabaseRulesetsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-audit-action-type": "EXPORT",
        "x-audit-target": "DATABASE_RULESET"
      }
    },
    "/database-rulesets/{databaseRulesetId}/csvImport": {
      "put": {
        "tags": [
          "databaseRuleset"
        ],
        "summary": "Import Ruleset inventory from CSV file",
        "description": "WARNING: The generated curl command is incorrect, so please refer to the Masking API guide for instructions on how to upload files through the API",
        "operationId": "csvDatabaseImport",
        "parameters": [
          {
            "name": "databaseRulesetId",
            "in": "path",
            "description": "The ID of the database ruleset to import",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The name of the ruleset. This must be unique within an environment.",
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/FileUploadBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseRulesetCSVImport"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerDatabaseRulesetsController",
        "x-contentType": "multipart/form-data",
        "x-accepts": "application/json",
        "x-audit-action-type": "IMPORT",
        "x-audit-target": "DATABASE_RULESET"
      }
    },
    "/database-usage": {
      "get": {
        "tags": [
          "billingUsage"
        ],
        "summary": "Get all database usages recorded in Masking engine",
        "operationId": "getAllDatabaseUsage",
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "description": "The date after which database usage should be retrieved. Date format is 'yyyy-MM-dd'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "The date before which database usage should be retrieved. Date format is 'yyyy-MM-dd'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "database_name",
            "in": "query",
            "description": "Name of the database for which usage should be retrieved.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to fetch database usage. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting property if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseUsageList"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "GenDatabaseUsageController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DatabaseUsageConverter",
        "x-operator-class": "com.dmsuite.manager.DatabaseUsageManager",
        "x-validator-class": "com.dmsuite.web.validators.DatabaseUsageValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "DATABASE_USAGE"
      }
    },
    "/domains": {
      "get": {
        "tags": [
          "domain"
        ],
        "summary": "Get all domains",
        "operationId": "getAllDomains",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get domains. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        },
        "x-swagger-router-controller": "GenDomainsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DomainConverter",
        "x-operator-class": "com.dmsuite.manager.DomainManager",
        "x-validator-class": "com.dmsuite.web.validators.DomainValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "DOMAIN",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "domain"
        ],
        "summary": "Create domain",
        "operationId": "createDomain",
        "requestBody": {
          "description": "The domain to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Domain"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Domain"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenDomainsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DomainConverter",
        "x-operator-class": "com.dmsuite.manager.DomainManager",
        "x-validator-class": "com.dmsuite.web.validators.DomainValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "DOMAIN",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/domains/{domainName}": {
      "get": {
        "tags": [
          "domain"
        ],
        "summary": "Get domain by name",
        "operationId": "getDomain",
        "parameters": [
          {
            "name": "domainName",
            "in": "path",
            "description": "The name of the domain to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad request"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          },
          "default": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Domain"
                }
              }
            }
          }
        },
        "x-swagger-router-controller": "GenDomainsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DomainConverter",
        "x-operator-class": "com.dmsuite.manager.DomainManager",
        "x-validator-class": "com.dmsuite.web.validators.DomainValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "DOMAIN",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "domain"
        ],
        "summary": "Update domain by name",
        "operationId": "updateDomain",
        "parameters": [
          {
            "name": "domainName",
            "in": "path",
            "description": "The name of the domain to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated domain",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Domain"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Domain"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenDomainsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DomainConverter",
        "x-operator-class": "com.dmsuite.manager.DomainManager",
        "x-validator-class": "com.dmsuite.web.validators.DomainValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "DOMAIN",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "domain"
        ],
        "summary": "Delete domain by name",
        "operationId": "deleteDomain",
        "parameters": [
          {
            "name": "domainName",
            "in": "path",
            "description": "The name of the domain to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenDomainsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.DomainConverter",
        "x-operator-class": "com.dmsuite.manager.DomainManager",
        "x-validator-class": "com.dmsuite.web.validators.DomainValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getDomain",
        "x-audit-target": "DOMAIN",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/encryptionKey": {
      "put": {
        "tags": [
          "encryptionKey"
        ],
        "summary": "Generate a new encryption key for the masking engine",
        "operationId": "generateEncryptionKey",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerEncryptionKeyController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/environments": {
      "get": {
        "tags": [
          "environment"
        ],
        "summary": "Get all environments",
        "operationId": "getAllEnvironments",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get environments. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "application_id",
            "in": "query",
            "description": "The ID of the application to get all environments from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenEnvironmentsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.EnvironmentConverter",
        "x-operator-class": "com.dmsuite.manager.EnvironmentManager",
        "x-validator-class": "com.dmsuite.web.validators.EnvironmentValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "ENVIRONMENT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "environment"
        ],
        "summary": "Create environment",
        "operationId": "createEnvironment",
        "requestBody": {
          "description": "The environment to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Environment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenEnvironmentsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.EnvironmentConverter",
        "x-operator-class": "com.dmsuite.manager.EnvironmentManager",
        "x-validator-class": "com.dmsuite.web.validators.EnvironmentValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "ENVIRONMENT",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/environments/{environmentId}": {
      "get": {
        "tags": [
          "environment"
        ],
        "summary": "Get environment by ID",
        "operationId": "getEnvironmentById",
        "parameters": [
          {
            "name": "environmentId",
            "in": "path",
            "description": "The ID of the environment to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenEnvironmentsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.EnvironmentConverter",
        "x-operator-class": "com.dmsuite.manager.EnvironmentManager",
        "x-validator-class": "com.dmsuite.web.validators.EnvironmentValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "ENVIRONMENT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "environment"
        ],
        "summary": "Update environment by ID",
        "operationId": "updateEnvironment",
        "parameters": [
          {
            "name": "environmentId",
            "in": "path",
            "description": "The ID of the environment to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated environment",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Environment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenEnvironmentsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.EnvironmentConverter",
        "x-operator-class": "com.dmsuite.manager.EnvironmentManager",
        "x-validator-class": "com.dmsuite.web.validators.EnvironmentValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "ENVIRONMENT",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "environment"
        ],
        "summary": "Delete environment by ID",
        "operationId": "deleteEnvironment",
        "parameters": [
          {
            "name": "environmentId",
            "in": "path",
            "description": "The ID of the environment to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenEnvironmentsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.EnvironmentConverter",
        "x-operator-class": "com.dmsuite.manager.EnvironmentManager",
        "x-validator-class": "com.dmsuite.web.validators.EnvironmentValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getEnvironmentById",
        "x-audit-target": "ENVIRONMENT",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-manager-needs-user": true,
        "x-manager-needs-request-ip": true
      }
    },
    "/environments/{environmentId}/copy": {
      "post": {
        "tags": [
          "environment"
        ],
        "summary": "Copy environment by ID",
        "operationId": "copyEnvironment",
        "parameters": [
          {
            "name": "environmentId",
            "in": "path",
            "description": "The ID of the environment to copy",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The environment to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Environment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenEnvironmentsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.EnvironmentConverter",
        "x-operator-class": "com.dmsuite.manager.EnvironmentManager",
        "x-validator-class": "com.dmsuite.web.validators.EnvironmentValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "ENVIRONMENT",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/executions": {
      "get": {
        "tags": [
          "execution"
        ],
        "summary": "Get all executions",
        "operationId": "getAllExecutions",
        "parameters": [
          {
            "name": "job_id",
            "in": "query",
            "description": "The ID of the job to get all executions for",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get executions. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "execution_status",
            "in": "query",
            "description": "The status of the job execution. Note that, if this parameter is excluded, then all executions will be returned..",
            "schema": {
              "type": "string",
              "enum": [
                "CANCELLED",
                "FAILED",
                "QUEUED",
                "RUNNING",
                "SUCCEEDED",
                "WAITING"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerExecutionsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "execution"
        ],
        "summary": "Create execution",
        "operationId": "createExecution",
        "requestBody": {
          "description": "The execution to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Execution"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Execution"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "callbacks": {
          "onNotification": {
            "/notifications-callback": {
              "post": {
                "requestBody": {
                  "description": "Notification Payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/CallbackPayload"
                      }
                    }
                  }
                },
                "responses": {
                  "202": {
                    "description": "Data was received successfully"
                  },
                  "204": {
                    "description": "Backend no longer interested in further updates"
                  }
                }
              }
            }
          }
        },
        "x-notification-callback": true,
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerExecutionsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/executions/{executionId}": {
      "get": {
        "tags": [
          "execution"
        ],
        "summary": "Get execution by ID",
        "operationId": "getExecutionById",
        "parameters": [
          {
            "name": "executionId",
            "in": "path",
            "description": "The ID of the execution to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Execution"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerExecutionsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/executions/{executionId}/cancel": {
      "post": {
        "tags": [
          "execution"
        ],
        "summary": "Cancel execution by ID",
        "operationId": "cancelExecution",
        "parameters": [
          {
            "name": "executionId",
            "in": "path",
            "description": "The ID of the execution to cancel",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "expectedStatus",
            "in": "query",
            "description": "The expected status of the execution to cancel to prevent cancelling a queued job that has transitioned to a running state since the request was issued.",
            "schema": {
              "type": "string",
              "enum": [
                "QUEUED",
                "RUNNING"
              ]
            }
          },
          {
            "name": "graceful",
            "in": "query",
            "description": "A cancellation strategy to re-enable SQL objects that were disabled earlier in the execution before terminating.",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Execution"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerExecutionsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/executions/search": {
      "post": {
        "tags": [
          "execution"
        ],
        "summary": "Search executions",
        "operationId": "searchExecutions",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get executions. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "execution_sort",
            "in": "query",
            "description": "The field to sort results by. A property name with a prepended '-' signifies a descending order.",
            "schema": {
              "type": "string",
              "enum": [
                "environmentId",
                "-environmentId",
                "executionId",
                "-executionId",
                "jobId",
                "-jobId"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "A request body containing a filter expression. Refer to the documentation to learn the syntax for filter-queries.\n Supported filterable attributes: \"environmentId\", \"executionId\", \"jobId\"",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Filter"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerExecutionsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body",
        "x-swagger-hibernate-converter-ignore": true
      }
    },
    "/execution-components": {
      "get": {
        "tags": [
          "executionComponent"
        ],
        "summary": "Get all execution components",
        "operationId": "getAllExecutionComponents",
        "parameters": [
          {
            "name": "execution_id",
            "in": "query",
            "description": "The ID of the execution to get all components for",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "The list of statuses that need to be filtered",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "SUCCEEDED",
                  "WARNING",
                  "FAILED",
                  "CANCELLED",
                  "RUNNING",
                  "WAITING"
                ]
              }
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "Sort by field.",
            "schema": {
              "type": "string",
              "enum": [
                "componentName",
                "executionComponentId",
                "status"
              ]
            }
          },
          {
            "name": "sort_dir",
            "in": "query",
            "description": "Sort direction.",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get executions. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionComponentList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenExecutionComponentsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ExecutionComponentConverter",
        "x-operator-class": "com.dmsuite.manager.TransLevelInfoManager",
        "x-validator-class": "com.dmsuite.web.validators.ExecutionComponentValidator",
        "x-manager-needs-user": true,
        "x-audit-ignored": true,
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/execution-component-log": {
      "get": {
        "tags": [
          "logging"
        ],
        "summary": "Get all execution components logs",
        "operationId": "getAllExecutionComponentsLogs",
        "parameters": [
          {
            "name": "execution_id",
            "in": "query",
            "description": "The ID of the Execution to get all component logs",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get executions component. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionComponentLogsList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenExecutionComponentLogController",
        "x-validator-class": "com.dmsuite.web.validators.ExecutionComponentLogsValidator",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ExecutionComponentLogsConverter",
        "x-operator-class": "com.dmsuite.manager.TransLevelInfoManager",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "EXECUTION_COMPONENT_LOG",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/execution-component-log/{componentId}": {
      "get": {
        "tags": [
          "logging"
        ],
        "summary": "Get execution component log by component ID",
        "operationId": "getExecutionComponentById",
        "parameters": [
          {
            "name": "componentId",
            "in": "path",
            "description": "The ID of the execution to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionComponentLog"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenExecutionComponentLogController",
        "x-validator-class": "com.dmsuite.web.validators.ExecutionComponentLogsValidator",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ExecutionComponentLogsConverter",
        "x-operator-class": "com.dmsuite.manager.TransLevelInfoManager",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET",
        "x-audit-ignore-return": true,
        "x-audit-target": "EXECUTION_COMPONENT_LOG",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/execution-events": {
      "get": {
        "tags": [
          "executionEvent"
        ],
        "summary": "Get all execution events",
        "description": "Get events, such as warnings or errors, associated with job executions.",
        "operationId": "getAllExecutionEvents",
        "parameters": [
          {
            "name": "execution_id",
            "in": "query",
            "description": "The ID of the execution to get all events for",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get execution events. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionEventList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenExecutionEventsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ExecutionEventConverter",
        "x-operator-class": "com.dmsuite.manager.ExecutionEventManager",
        "x-validator-class": "com.dmsuite.web.validators.ExecutionEventValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "EXECUTION_EVENT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/execution-logs": {
      "get": {
        "tags": [
          "logging"
        ],
        "summary": "Get all execution logs",
        "operationId": "getAllExecutionLogs",
        "parameters": [
          {
            "name": "job_id",
            "in": "query",
            "description": "The ID of the job to get all executions for",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get executions. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "execution_status",
            "in": "query",
            "description": "The status of the job execution. Note that, if this parameter is excluded, then all executions will be returned.",
            "schema": {
              "type": "string",
              "enum": [
                "CANCELLED",
                "FAILED",
                "QUEUED",
                "RUNNING",
                "SUCCEEDED",
                "WAITING",
                "WARNING"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionLogsList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenExecutionLogsController",
        "x-validator-class": "com.dmsuite.web.validators.ExecutionLogsValidator",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ExecutionLogsConverter",
        "x-operator-class": "com.dmsuite.manager.ExecutionLogsManager",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "EXECUTION_LOG",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/execution-logs/{executionId}": {
      "get": {
        "tags": [
          "logging"
        ],
        "summary": "Get all execution log by ID",
        "operationId": "getExecutionLogsById",
        "parameters": [
          {
            "name": "executionId",
            "in": "path",
            "description": "The ID of the execution to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionLog"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenExecutionLogsController",
        "x-validator-class": "com.dmsuite.web.validators.ExecutionLogsValidator",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ExecutionLogsConverter",
        "x-operator-class": "com.dmsuite.manager.ExecutionLogsManager",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET",
        "x-audit-ignore-return": true,
        "x-audit-target": "EXECUTION_LOG",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/export": {
      "post": {
        "tags": [
          "sync"
        ],
        "summary": "Export masking object",
        "description": "Export masking objects",
        "operationId": "export",
        "requestBody": {
          "description": "The identifier for the masking object to export",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ExportObjectMetadata"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportObject"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerExportController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/export-async": {
      "post": {
        "tags": [
          "sync"
        ],
        "summary": "Export masking object",
        "description": "Export masking objects",
        "operationId": "asyncExport",
        "parameters": [
          {
            "name": "structure",
            "in": "query",
            "description": "The structure of the resulting export bundle.",
            "schema": {
              "type": "string",
              "enum": [
                "ZIP",
                "BLOB"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "The identifier for the masking object to export",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ExportObjectMetadata"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerExportController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "sync"
        ],
        "summary": "Delete all export documents from /async-export tasks",
        "operationId": "purgeExportDirectory",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerExportController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/file-connectors": {
      "get": {
        "tags": [
          "fileConnector"
        ],
        "summary": "Get all file connectors",
        "operationId": "getAllFileConnectors",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get file connectors. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the environment to get all file connectors from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileConnectorList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.FileConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.FileConnectorValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "FILE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "fileConnector"
        ],
        "summary": "Create file connector",
        "operationId": "createFileConnector",
        "requestBody": {
          "description": "The file connector to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileConnector"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileConnector"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenFileConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.FileConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.FileConnectorValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "FILE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/file-connectors/{fileConnectorId}": {
      "get": {
        "tags": [
          "fileConnector"
        ],
        "summary": "Get file connector by ID",
        "operationId": "getFileConnectorById",
        "parameters": [
          {
            "name": "fileConnectorId",
            "in": "path",
            "description": "The ID of the file connector to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileConnector"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.FileConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.FileConnectorValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "FILE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "fileConnector"
        ],
        "summary": "Update file connector by ID",
        "operationId": "updateFileConnector",
        "parameters": [
          {
            "name": "fileConnectorId",
            "in": "path",
            "description": "The ID of the file connector to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated file connector",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileConnector"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileConnector"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.FileConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.FileConnectorValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "FILE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "fileConnector"
        ],
        "summary": "Delete file connector by ID",
        "description": "Deletes file connector with given ID. This will also delete all rule sets and jobs which are using this connector.",
        "operationId": "deleteFileConnector",
        "parameters": [
          {
            "name": "fileConnectorId",
            "in": "path",
            "description": "The ID of the file connector to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.FileConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.FileConnectorValidator",
        "x-manager-needs-user": true,
        "x-manager-needs-request-ip": true,
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getFileConnectorById",
        "x-audit-target": "FILE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/file-connectors/{fileConnectorId}/fetch": {
      "get": {
        "tags": [
          "fileConnector"
        ],
        "summary": "Fetch all accessible file names",
        "description": "Note that even the names of files in the directory path that are not readable or writable will be returned",
        "operationId": "fetchFileMetadata",
        "parameters": [
          {
            "name": "fileConnectorId",
            "in": "path",
            "description": "The ID of the file connector to fetch the files for",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "hideExisting",
            "in": "query",
            "description": "This flag specifies fetching only table names that are not already part of a particular ruleset.",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "rulesetId",
            "in": "query",
            "description": "Ruleset ID to check if the file is already added. Required in case of hideExisting is set to true.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.FileConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.FileConnectorValidator",
        "x-audit-action-type": "GET",
        "x-audit-ignore-return": true,
        "x-audit-target": "FILE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/file-connectors/{fileConnectorId}/test": {
      "post": {
        "tags": [
          "fileConnector"
        ],
        "summary": "Test file connector by ID",
        "description": "WARNING: There is a known bug in the API Client where it is impossible to submit a request with an 'empty' body. As such, only the 'full' body variant of this endpoint can be used through the API Client. To use the 'empty' body variant of this endpoint, please do not use the API Client, but instead use curl or some other method of issuing HTTP requests.",
        "operationId": "testFileConnector",
        "parameters": [
          {
            "name": "fileConnectorId",
            "in": "path",
            "description": "The ID of the file connector to test",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The file connector to test. This field is optional and if no password or sshkey is supplied with the connector then the password associated with the fileConnectorId will be used.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileConnector"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TestConnectorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.FileConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.FileConnectorValidator",
        "x-audit-action-type": "TEST",
        "x-audit-ignore-return": true,
        "x-audit-target": "FILE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/file-connectors/test": {
      "post": {
        "tags": [
          "fileConnector"
        ],
        "summary": "Test an unsaved file connector",
        "operationId": "testUnsavedFileConnector",
        "requestBody": {
          "description": "The file connector to test",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileConnector"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TestConnectorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.FileConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.FileConnectorValidator",
        "x-audit-action-type": "TEST",
        "x-audit-ignore-return": true,
        "x-audit-target": "FILE_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/file-downloads/{fileDownloadId}": {
      "get": {
        "tags": [
          "fileDownload"
        ],
        "summary": "Download file",
        "operationId": "downloadFile",
        "parameters": [
          {
            "name": "fileDownloadId",
            "in": "path",
            "description": "The file identifier returned from the GET call of the object",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "description": "The file to download",
                  "format": "binary"
                }
              },
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "description": "The file to download",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileDownloadsController",
        "x-response-is-file": true
      }
    },
    "/file-field-metadata": {
      "get": {
        "tags": [
          "fileFieldMetadata"
        ],
        "summary": "Get all file field metadata",
        "operationId": "getAllFileFieldMetadata",
        "parameters": [
          {
            "name": "file_format_id",
            "in": "query",
            "description": "The ID of the file format to get all file field metadata from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "record_type_id",
            "in": "query",
            "description": "The ID of the record type to get all file field metadata from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "field_name",
            "in": "query",
            "description": "The name of the file field, as determined by the associated file format. A wildcard character '\\*' can be used to represent zero or more characters. To match exact character '\\*' or '\\' in the fieldName, escape the character using '\\' like '\\\\*' and '\\\\\\\\' respectively.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "is_masked",
            "in": "query",
            "description": "Get only masked file field metadata when this is true and only unmasked file field metadata when this is false",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get file field metadata. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileFieldMetadataList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileFieldMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileFieldConverter",
        "x-operator-class": "com.dmsuite.manager.FileFieldMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.FileFieldMetadataValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "FILE_FIELD_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "fileFieldMetadata"
        ],
        "summary": "Create file field metadata",
        "operationId": "createFileFieldMetadata",
        "requestBody": {
          "description": "The file filed metadata to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileFieldMetadata"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileFieldMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenFileFieldMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileFieldConverter",
        "x-operator-class": "com.dmsuite.manager.FileFieldMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.FileFieldMetadataValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "FILE_FIELD_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/file-field-metadata/{fileFieldMetadataId}": {
      "get": {
        "tags": [
          "fileFieldMetadata"
        ],
        "summary": "Get file field metadata by ID",
        "operationId": "getFileFieldMetadataById",
        "parameters": [
          {
            "name": "fileFieldMetadataId",
            "in": "path",
            "description": "The ID of the file field metadata to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileFieldMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileFieldMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileFieldConverter",
        "x-operator-class": "com.dmsuite.manager.FileFieldMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.FileFieldMetadataValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "FILE_FIELD_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "fileFieldMetadata"
        ],
        "summary": "Update file field metadata by ID",
        "operationId": "updateFileFieldMetadata",
        "parameters": [
          {
            "name": "fileFieldMetadataId",
            "in": "path",
            "description": "The ID of the file field metadata to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated file field metadata",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileFieldMetadata"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileFieldMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileFieldMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileFieldConverter",
        "x-operator-class": "com.dmsuite.manager.FileFieldMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.FileFieldMetadataValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "FILE_FIELD_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "fileFieldMetadata"
        ],
        "summary": "Delete file field metadata by ID",
        "operationId": "deleteFileFieldMetadata",
        "parameters": [
          {
            "name": "fileFieldMetadataId",
            "in": "path",
            "description": "The ID of the file field metadata to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileFieldMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileFieldConverter",
        "x-operator-class": "com.dmsuite.manager.FileFieldMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.FileFieldMetadataValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getFileFieldMetadataById",
        "x-audit-target": "FILE_FIELD_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/file-formats": {
      "get": {
        "tags": [
          "fileFormat"
        ],
        "summary": "Get all file formats",
        "operationId": "getAllFileFormats",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get file formats. This will default to the first page if excluded",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting property if not provided",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileFormatList"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenFileFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileFormatConverter",
        "x-operator-class": "com.dmsuite.manager.FileFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.FileFormatValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "FILE_FORMAT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "fileFormat"
        ],
        "summary": "Create file format",
        "description": "WARNING: The generated curl command is incorrect, so please refer to the Masking API guide for instructions on how to upload files through the API",
        "operationId": "createFileFormat",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/FileFormatBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileFormat"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenFileFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileFormatConverter",
        "x-operator-class": "com.dmsuite.manager.FileFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.FileFormatValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "FILE_FORMAT",
        "x-contentType": "multipart/form-data",
        "x-accepts": "application/json"
      }
    },
    "/file-formats/{fileFormatId}": {
      "get": {
        "tags": [
          "fileFormat"
        ],
        "summary": "Get file format by ID",
        "operationId": "getFileFormatById",
        "parameters": [
          {
            "name": "fileFormatId",
            "in": "path",
            "description": "The ID of the file format to get",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileFormat"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileFormatConverter",
        "x-operator-class": "com.dmsuite.manager.FileFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.FileFormatValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "FILE_FORMAT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "fileFormat"
        ],
        "summary": "Update file format",
        "operationId": "updateFileFormat",
        "parameters": [
          {
            "name": "fileFormatId",
            "in": "path",
            "description": "The ID of the file format to update",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated file format",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileFormat"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileFormat"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileFormatConverter",
        "x-operator-class": "com.dmsuite.manager.FileFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.FileFormatValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "EDIT",
        "x-audit-target": "FILE_FORMAT",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "fileFormat"
        ],
        "summary": "Delete file format by ID",
        "operationId": "deleteFileFormat",
        "parameters": [
          {
            "name": "fileFormatId",
            "in": "path",
            "description": "The ID of the file format to delete",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileFormatConverter",
        "x-operator-class": "com.dmsuite.manager.FileFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.FileFormatValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getFileFormatById",
        "x-audit-target": "FILE_FORMAT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/file-formats/{fileFormatId}/copy": {
      "put": {
        "tags": [
          "fileFormat"
        ],
        "summary": "Copy file format by ID",
        "operationId": "copyFileFormat",
        "parameters": [
          {
            "name": "fileFormatId",
            "in": "path",
            "description": "The ID of the file format to duplicate",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The name for the new file format copy",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileFormatCopy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileFormat"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileFormatConverter",
        "x-operator-class": "com.dmsuite.manager.FileFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.FileFormatValidator",
        "x-manager-needs-user": true,
        "x-audit-ignore-return": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "FILE_FORMAT",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body",
        "x-swagger-hibernate-converter-ignore": true
      }
    },
    "/file-formats/export": {
      "post": {
        "tags": [
          "fileFormat"
        ],
        "summary": "Export File Format using File Format ID",
        "description": "Returns a fileDownloadId for the given fileFormatId and (optional) recordTypeId.",
        "operationId": "exportFileFormat",
        "parameters": [
          {
            "name": "fileFormatId",
            "in": "query",
            "description": "File format ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "recordTypeId",
            "in": "query",
            "description": "Record type ID",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileFormat"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "404": {
            "description": "File format not found"
          }
        },
        "x-swagger-router-controller": "GenFileFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileFormatConverter",
        "x-operator-class": "com.dmsuite.manager.FileFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.FileFormatValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "FILE_FORMAT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/file-metadata": {
      "get": {
        "tags": [
          "fileMetadata"
        ],
        "summary": "Get all file metadata",
        "operationId": "getAllFileMetadata",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get file metadata. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "ruleset_id",
            "in": "query",
            "description": "The ID of the ruleset to get all file metadata from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileMetadataList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.FileMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.FileMetadataValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "FILE_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "fileMetadata"
        ],
        "summary": "Create file metadata",
        "operationId": "createFileMetadata",
        "requestBody": {
          "description": "The file metadata to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileMetadata"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenFileMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.FileMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.FileMetadataValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "FILE_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/file-metadata/{fileMetadataId}": {
      "get": {
        "tags": [
          "fileMetadata"
        ],
        "summary": "Get file metadata by ID",
        "operationId": "getFileMetadataById",
        "parameters": [
          {
            "name": "fileMetadataId",
            "in": "path",
            "description": "The ID of the file metadata to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.FileMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.FileMetadataValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "FILE_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "fileMetadata"
        ],
        "summary": "Update file metadata by ID",
        "operationId": "updateFileMetadata",
        "parameters": [
          {
            "name": "fileMetadataId",
            "in": "path",
            "description": "The ID of the file metadata to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Updated fileMetadata object",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileMetadata"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.FileMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.FileMetadataValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "FILE_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "fileMetadata"
        ],
        "summary": "Delete file metadata by ID",
        "operationId": "deleteFileMetadata",
        "parameters": [
          {
            "name": "fileMetadataId",
            "in": "path",
            "description": "The ID of the file metadata to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenFileMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.FileMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.FileMetadataValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getFileMetadataById",
        "x-audit-target": "FILE_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/file-rulesets": {
      "get": {
        "tags": [
          "fileRuleset"
        ],
        "summary": "Get all file rulesets",
        "operationId": "getAllFileRulesets",
        "parameters": [
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the environment to get all file rulesets from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get file rulesets. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileRulesetList"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileRulesetController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileRulesetConverter",
        "x-operator-class": "com.dmsuite.manager.FileRulesetManager",
        "x-validator-class": "com.dmsuite.web.validators.FileRulesetValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "FILE_RULESET",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "fileRuleset"
        ],
        "summary": "Create file ruleset",
        "operationId": "createFileRuleset",
        "requestBody": {
          "description": "The file ruleset to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileRuleset"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileRuleset"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileRulesetController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileRulesetConverter",
        "x-operator-class": "com.dmsuite.manager.FileRulesetManager",
        "x-validator-class": "com.dmsuite.web.validators.FileRulesetValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "FILE_RULESET",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/file-rulesets/{fileRulesetId}": {
      "get": {
        "tags": [
          "fileRuleset"
        ],
        "summary": "Get file ruleset by ID",
        "operationId": "getFileRulesetById",
        "parameters": [
          {
            "name": "fileRulesetId",
            "in": "path",
            "description": "The ID of the file ruleset to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileRuleset"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileRulesetController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileRulesetConverter",
        "x-operator-class": "com.dmsuite.manager.FileRulesetManager",
        "x-validator-class": "com.dmsuite.web.validators.FileRulesetValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "FILE_RULESET",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "delete": {
        "tags": [
          "fileRuleset"
        ],
        "summary": "Delete file ruleset by ID",
        "operationId": "deleteFileRuleset",
        "parameters": [
          {
            "name": "fileRulesetId",
            "in": "path",
            "description": "The ID of the file ruleset to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileRulesetController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileRulesetConverter",
        "x-operator-class": "com.dmsuite.manager.FileRulesetManager",
        "x-validator-class": "com.dmsuite.web.validators.FileRulesetValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getFileRulesetById",
        "x-audit-target": "FILE_RULESET",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/file-rulesets/{fileRulesetId}/bulk-file-update": {
      "put": {
        "tags": [
          "fileRuleset"
        ],
        "summary": "Update the set of files and their attributes associated with a file ruleset in bulk",
        "operationId": "bulkFileUpdate",
        "parameters": [
          {
            "name": "fileRulesetId",
            "in": "path",
            "description": "The ID of the file ruleset to update the file for",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The exact list of files to put in the ruleset. Note that existing files for this ruleset not in this list will be deleted",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileMetadataBulkInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileRulesetController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/file-rulesets/{fileRulesetId}/copy": {
      "put": {
        "tags": [
          "fileRuleset"
        ],
        "summary": "Copy file ruleset by ID",
        "operationId": "copyFileRuleset",
        "parameters": [
          {
            "name": "fileRulesetId",
            "in": "path",
            "description": "The ID of the file ruleset to copy",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The name of the ruleset. This must be unique within an environment.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileRulesetCopy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileRuleset"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileRulesetController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/file-rulesets/{fileRulesetId}/csvExport": {
      "post": {
        "tags": [
          "fileRuleset"
        ],
        "summary": "Export file ruleset by ID",
        "operationId": "csvExport",
        "parameters": [
          {
            "name": "fileRulesetId",
            "in": "path",
            "description": "The ID of the file ruleset to export",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The name of the exported file",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileRulesetCSVExport"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileRulesetCSVExport"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileRulesetController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileRulesetConverter",
        "x-operator-class": "com.dmsuite.manager.FileRulesetManager",
        "x-validator-class": "com.dmsuite.web.validators.FileRulesetValidator",
        "x-audit-action-type": "EXPORT",
        "x-audit-target": "FILE_RULESET",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/file-rulesets/{fileRulesetId}/csvImport": {
      "put": {
        "tags": [
          "fileRuleset"
        ],
        "summary": "Import Ruleset inventory from CSV file",
        "description": "WARNING: The generated curl command is incorrect, so please refer to the Masking API guide for instructions on how to upload files through the API",
        "operationId": "csvImport",
        "parameters": [
          {
            "name": "fileRulesetId",
            "in": "path",
            "description": "The ID of the file rule-set to import",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/FileUploadBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileRulesetCSVImport"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileRulesetController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileRulesetConverter",
        "x-operator-class": "com.dmsuite.manager.FileRulesetManager",
        "x-validator-class": "com.dmsuite.web.validators.FileRulesetValidator",
        "x-audit-action-type": "IMPORT",
        "x-audit-target": "FILE_RULESET",
        "x-contentType": "multipart/form-data",
        "x-accepts": "application/json"
      }
    },
    "/file-uploads": {
      "get": {
        "tags": [
          "fileUpload"
        ],
        "summary": "Get all files",
        "operationId": "getAllFiles",
        "parameters": [
          {
            "name": "permanent",
            "in": "query",
            "description": "This indicates whether the file should be persisted permanently. Note that this should be set to true for files like an OAuth settings file, i.e., files that are not explicitly referenced by a JDBC driver, algorithm or driver support plugin, or connection properties file.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get algorithms. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileUploadList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileUploadsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "fileUpload"
        ],
        "summary": "Upload file",
        "description": "WARNING: The generated curl command is incorrect, so please refer to the Masking API guide for instructions on how to upload files through the API",
        "operationId": "uploadFile",
        "parameters": [
          {
            "name": "permanent",
            "in": "query",
            "description": "This indicates whether the file should be persisted permanently. Note that this should be set to true for files like an OAuth settings file, i.e., files that are not explicitly referenced by a JDBC driver, algorithm or driver support plugin, or connection properties file.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/FileUploadBody_1"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileUpload"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileUploadsController",
        "x-contentType": "multipart/form-data",
        "x-accepts": "application/json"
      },
      "delete": {
        "tags": [
          "fileUpload"
        ],
        "summary": "Delete all files",
        "operationId": "deleteAllFileUploads",
        "parameters": [
          {
            "name": "permanent",
            "in": "query",
            "description": "This indicates whether all of the files that should be deleted are in the permanent upload directory. This defaults to false so all of the files that are deleted are in the temporary upload directory.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileUploadsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/file-uploads/{fileUuid}": {
      "get": {
        "tags": [
          "fileUpload"
        ],
        "summary": "Get file upload by ID",
        "description": "WARNING: The generated curl command is incorrect, so please refer to the Masking API guide for instructions on how to upload files through the API",
        "operationId": "getFileByUuid",
        "parameters": [
          {
            "name": "fileUuid",
            "in": "path",
            "description": "The unique identifier of the permanently uploaded file to get",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileUpload"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileUploadsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileUploadConverter",
        "x-operator-class": "com.dmsuite.manager.FileUploadManager",
        "x-validator-class": "com.dmsuite.web.validators.FileUploadValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "FILE_UPLOAD",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "fileUpload"
        ],
        "summary": "Update permanent file upload by ID",
        "description": "WARNING: The generated curl command is incorrect, so please refer to the Masking API guide for instructions on how to upload files through the API",
        "operationId": "updateFileByUuid",
        "parameters": [
          {
            "name": "fileUuid",
            "in": "path",
            "description": "The unique identifier of the permanently uploaded file to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/FileUploadBody_1"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileUpload"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileUploadsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileUploadConverter",
        "x-operator-class": "com.dmsuite.manager.FileUploadManager",
        "x-validator-class": "com.dmsuite.web.validators.FileUploadValidator",
        "x-audit-action-type": "PUT",
        "x-audit-target": "FILE_UPLOAD",
        "x-contentType": "multipart/form-data",
        "x-accepts": "application/json"
      },
      "delete": {
        "tags": [
          "fileUpload"
        ],
        "summary": "Delete permanent file upload by ID",
        "operationId": "deleteFileByUuid",
        "parameters": [
          {
            "name": "fileUuid",
            "in": "path",
            "description": "The unique identifier of the permanently uploaded file to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerFileUploadsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.FileUploadConverter",
        "x-operator-class": "com.dmsuite.manager.FileUploadManager",
        "x-validator-class": "com.dmsuite.web.validators.FileUploadValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-target": "FILE_UPLOAD",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/import": {
      "post": {
        "tags": [
          "sync"
        ],
        "summary": "Import masking objects",
        "description": "Import masking objects",
        "operationId": "importObject",
        "parameters": [
          {
            "name": "force_overwrite",
            "in": "query",
            "description": "Specify whether the import should fail if an object already exists with the same ID or the existing object should be overwritten.",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the environment to import objects into",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "source_environment_id",
            "in": "query",
            "description": "The ID of the source environment to import on-the-fly connectors into",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The identifier for the masking object to import",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportObject"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImportObjectMetadata"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerImportController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/import-async": {
      "post": {
        "tags": [
          "sync"
        ],
        "summary": "Import masking objects",
        "description": "WARNING: The generated curl command is incorrect, so please refer to the Masking API guide for instructions on how to upload files through the API",
        "operationId": "asyncImportObject",
        "parameters": [
          {
            "name": "force_overwrite",
            "in": "query",
            "description": "Specify whether the import should fail if an object already exists with the same ID or the existing object should be overwritten.",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the environment to import objects into",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "source_environment_id",
            "in": "query",
            "description": "The ID of the source environment to import on-the-fly connectors into",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/FileUploadBody_1"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerImportController",
        "x-contentType": "multipart/form-data",
        "x-accepts": "application/json"
      },
      "delete": {
        "tags": [
          "sync"
        ],
        "summary": "Delete all import documents from /async-import tasks",
        "operationId": "purgeImportDirectory",
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerImportController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/inventory-approvals": {
      "get": {
        "tags": [
          "inventoryApproval"
        ],
        "summary": "Get Inventory Approval by environment ID and Ruleset Name.",
        "operationId": "getInventoryApproval",
        "parameters": [
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the Environment.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ruleset_name",
            "in": "query",
            "description": "The name of the rule-set that has inventory approval record.",
            "required": true,
            "schema": {
              "maxLength": 500,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryApproval"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenInventoryApprovalsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.InventoryApprovalConverter",
        "x-operator-class": "com.dmsuite.manager.InventoryApprovalManager",
        "x-validator-class": "com.dmsuite.web.validators.InventoryApprovalValidator",
        "x-audit-action-type": "GET",
        "x-audit-ignore-return": true,
        "x-audit-target": "INVENTORY_APPROVAL",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/inventory-approvals/{inventoryApprovalId}": {
      "put": {
        "tags": [
          "inventoryApproval"
        ],
        "summary": "Update Inventory Approval by ID",
        "operationId": "updateInventoryApproval",
        "parameters": [
          {
            "name": "inventoryApprovalId",
            "in": "path",
            "description": "The ID of the inventory approval to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "inventoryStatus",
            "in": "query",
            "description": "The inventory status of the inventory approval to update",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "SUBMITTED",
                "APPROVED",
                "REJECTED"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryApproval"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenInventoryApprovalsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.InventoryApprovalConverter",
        "x-operator-class": "com.dmsuite.manager.InventoryApprovalManager",
        "x-validator-class": "com.dmsuite.web.validators.InventoryApprovalValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "EDIT",
        "x-audit-target": "INVENTORY_APPROVAL",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/knowledge-base-info": {
      "get": {
        "tags": [
          "knowledgeBaseInfo"
        ],
        "summary": "Get all knowledge base info",
        "operationId": "getAllKnowledgeBaseInfo",
        "parameters": [
          {
            "name": "execution_event_id",
            "in": "query",
            "description": "The ID of the execution event for which to get knowledge base info",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get knowledge baee info. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeBaseInfoList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenKnowledgeBaseInfoController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.KnowledgeBaseInfoConverter",
        "x-operator-class": "com.dmsuite.manager.KnowledgeBaseInfoManager",
        "x-validator-class": "com.dmsuite.web.validators.KnowledgeBaseInfoValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "KNOWLEDGE_BASE_INFO",
        "x-manager-needs-user": false,
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/jdbc-drivers": {
      "get": {
        "tags": [
          "jdbcDriver"
        ],
        "summary": "Get all JDBC drivers",
        "operationId": "getAllJdbcDrivers",
        "parameters": [
          {
            "name": "is_built_in",
            "in": "query",
            "description": "Get only drivers that are built in to the engine when this is true and only user uploaded drivers when this is false",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get JDBC drivers. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JdbcDriversList"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenJdbcDriversController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.JdbcDriverConverter",
        "x-operator-class": "com.dmsuite.manager.JdbcDriverManager",
        "x-validator-class": "com.dmsuite.web.validators.JdbcDriverValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "JDBC_DRIVER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "jdbcDriver"
        ],
        "summary": "Create Jdbc Driver",
        "operationId": "createJdbcDriver",
        "requestBody": {
          "description": "The jdbc driver details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JdbcDriver"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JdbcDriver"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenJdbcDriversController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.JdbcDriverConverter",
        "x-operator-class": "com.dmsuite.manager.JdbcDriverManager",
        "x-validator-class": "com.dmsuite.web.validators.JdbcDriverValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "JDBC_DRIVER",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/jdbc-drivers/{jdbcDriverId}": {
      "get": {
        "tags": [
          "jdbcDriver"
        ],
        "summary": "Get JDBC driver by ID",
        "operationId": "getJdbcDriverById",
        "parameters": [
          {
            "name": "jdbcDriverId",
            "in": "path",
            "description": "The ID of the JDBC driver to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JdbcDriver"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenJdbcDriversController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.JdbcDriverConverter",
        "x-operator-class": "com.dmsuite.manager.JdbcDriverManager",
        "x-validator-class": "com.dmsuite.web.validators.JdbcDriverValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "JDBC_DRIVER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "jdbcDriver"
        ],
        "summary": "Update jdbc driver",
        "operationId": "updateJdbcDriver",
        "parameters": [
          {
            "name": "jdbcDriverId",
            "in": "path",
            "description": "The ID of the JDBC driver to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The jdbc driver details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JdbcDriver"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JdbcDriver"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenJdbcDriversController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.JdbcDriverConverter",
        "x-operator-class": "com.dmsuite.manager.JdbcDriverManager",
        "x-validator-class": "com.dmsuite.web.validators.JdbcDriverValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "EDIT",
        "x-audit-target": "JDBC_DRIVER",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "jdbcDriver"
        ],
        "summary": "Delete JDBC driver by ID",
        "operationId": "deleteJdbcDriver",
        "parameters": [
          {
            "name": "jdbcDriverId",
            "in": "path",
            "description": "The ID of the JDBC driver to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenJdbcDriversController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.JdbcDriverConverter",
        "x-operator-class": "com.dmsuite.manager.JdbcDriverManager",
        "x-validator-class": "com.dmsuite.web.validators.JdbcDriverValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-target": "JDBC_DRIVER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/jdbc-drivers/{jdbcDriverId}/export": {
      "post": {
        "tags": [
          "jdbcDriver"
        ],
        "summary": "Export JDBC driver JAR",
        "description": "Export the original JAR file of an uploaded (non-built-in) JDBC driver. Returns a fileDownloadId; pass it to GET /file-downloads/{fileDownloadId} to download the JAR.",
        "operationId": "exportJdbcDriver",
        "parameters": [
          {
            "name": "jdbcDriverId",
            "in": "path",
            "description": "The ID of the JDBC driver to export",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PluginExport"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenJdbcDriversController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.JdbcDriverConverter",
        "x-operator-class": "com.dmsuite.manager.JdbcDriverManager",
        "x-validator-class": "com.dmsuite.web.validators.JdbcDriverValidator",
        "x-audit-action-type": "EXPORT",
        "x-audit-ignore-return": true,
        "x-audit-target": "JDBC_DRIVER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/license": {
      "get": {
        "tags": [
          "license"
        ],
        "summary": "Get all licenses",
        "operationId": "getAllLicenses",
        "parameters": [
          {
            "name": "jdbc_driver_id",
            "in": "query",
            "description": "The JDBC driver Id to get the license",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get licences. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting property if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LicenseList"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenLicenseController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.LicenseInfoConverter",
        "x-operator-class": "com.dmsuite.manager.LicenseInfoManager",
        "x-validator-class": "com.dmsuite.web.validators.LicenseInfoValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "LICENSE",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "license"
        ],
        "summary": "Create license",
        "description": "WARNING: The generated curl command is incorrect, so please refer to the Masking API guide for instructions on how to upload files through the API",
        "operationId": "createLicense",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/LicenseBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/License"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenLicenseController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.LicenseInfoConverter",
        "x-operator-class": "com.dmsuite.manager.LicenseInfoManager",
        "x-validator-class": "com.dmsuite.web.validators.LicenseInfoValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "LICENSE",
        "x-contentType": "multipart/form-data",
        "x-accepts": "application/json"
      }
    },
    "/license/{licenseId}": {
      "get": {
        "tags": [
          "license"
        ],
        "summary": "Get license by ID",
        "operationId": "getLicenseById",
        "parameters": [
          {
            "name": "licenseId",
            "in": "path",
            "description": "The ID of the license to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/License"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenLicenseController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.LicenseInfoConverter",
        "x-operator-class": "com.dmsuite.manager.LicenseInfoManager",
        "x-validator-class": "com.dmsuite.web.validators.LicenseInfoValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "LICENSE",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "delete": {
        "tags": [
          "license"
        ],
        "summary": "Delete license by ID",
        "operationId": "deleteLicense",
        "parameters": [
          {
            "name": "licenseId",
            "in": "path",
            "description": "The ID of the license to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenLicenseController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.LicenseInfoConverter",
        "x-operator-class": "com.dmsuite.manager.LicenseInfoManager",
        "x-validator-class": "com.dmsuite.web.validators.LicenseInfoValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getLicenseById",
        "x-audit-target": "LICENSE",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/login": {
      "post": {
        "tags": [
          "login"
        ],
        "summary": "Log in to the Masking Engine",
        "operationId": "login",
        "requestBody": {
          "description": "The login object",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Login"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "security": [],
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerLoginController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "login"
      }
    },
    "/sso-login": {
      "post": {
        "tags": [
          "login"
        ],
        "summary": "Log in to the Masking Engine with an OAuth2 access token from Data Control Tower.",
        "operationId": "ssoLogin",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "security": [],
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerLoginController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/oauth2-login": {
      "post": {
        "tags": [
          "login"
        ],
        "summary": "Log in to the Masking Engine with an OAuth2 access token from a customer's Authorization Server.",
        "operationId": "oauth2Login",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "security": [],
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerLoginController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/logout": {
      "put": {
        "tags": [
          "login"
        ],
        "summary": "Log out of the Masking Engine",
        "operationId": "logout",
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerLogoutController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mainframe-dataset-connectors": {
      "get": {
        "tags": [
          "mainframeDatasetConnector"
        ],
        "summary": "Get all Mainframe Dataset connectors",
        "operationId": "getAllMainframeDatasetConnectors",
        "parameters": [
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the environment to get all Mainframe Dataset connectors from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get Mainframe Dataset connectors. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetConnectorList"
                }
              }
            }
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetConnectorValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "MAINFRAME_DATASET_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "mainframeDatasetConnector"
        ],
        "summary": "Create Mainframe Dataset connector",
        "operationId": "createMainframeDatasetConnector",
        "requestBody": {
          "description": "The Mainframe Dataset connector to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetConnector"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetConnector"
                }
              }
            }
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetConnectorValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "MAINFRAME_DATASET_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/mainframe-dataset-connectors/{mainframeDatasetConnectorId}": {
      "get": {
        "tags": [
          "mainframeDatasetConnector"
        ],
        "summary": "Get Mainframe Dataset connector by ID",
        "operationId": "getMainframeDatasetConnectorById",
        "parameters": [
          {
            "name": "mainframeDatasetConnectorId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset connector to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetConnector"
                }
              }
            }
          },
          "400": {
            "description": "Invalid mainframeDatasetConnectorId supplied"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Mainframe Dataset Connector not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetConnectorValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "MAINFRAME_DATASET_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "mainframeDatasetConnector"
        ],
        "summary": "Update Mainframe Dataset connector by ID",
        "operationId": "updateMainframeDatasetConnector",
        "parameters": [
          {
            "name": "mainframeDatasetConnectorId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset connector to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated Mainframe Dataset connector",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetConnector"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetConnector"
                }
              }
            }
          },
          "400": {
            "description": "Invalid mainframeDatasetConnectorId supplied"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Mainframe Dataset Connector not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetConnectorValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "MAINFRAME_DATASET_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "mainframeDatasetConnector"
        ],
        "summary": "Delete Mainframe Dataset connector by ID",
        "operationId": "deleteMainframeDatasetConnector",
        "parameters": [
          {
            "name": "mainframeDatasetConnectorId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset connector to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation"
          },
          "400": {
            "description": "Invalid mainframeDatasetConnectorId supplied"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Mainframe Dataset Connector not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetConnectorValidator",
        "x-manager-needs-user": true,
        "x-manager-needs-request-ip": true,
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getMainframeDatasetConnectorById",
        "x-audit-target": "MAINFRAME_DATASET_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mainframe-dataset-connectors/{mainframeDatasetConnectorId}/fetch": {
      "get": {
        "tags": [
          "mainframeDatasetConnector"
        ],
        "summary": "Fetch all accessible file names",
        "description": "Note that even the names of files in the directory path that are not readable or writable will be returned",
        "operationId": "fetchMainframeDatasetMetadata",
        "parameters": [
          {
            "name": "mainframeDatasetConnectorId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset connector to fetch the files for",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "hideExisting",
            "in": "query",
            "description": "This flag specifies fetching only table names that are not already part of a particular ruleset.",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "rulesetId",
            "in": "query",
            "description": "Ruleset ID to check if the file is already added. Required in case of hideExisting is set to true.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid mainframeDatasetConnectorId supplied"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Mainframe Dataset Connector not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetConnectorValidator",
        "x-audit-action-type": "GET",
        "x-audit-ignore-return": true,
        "x-audit-target": "MAINFRAME_DATASET_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mainframe-dataset-connectors/{mainframeDatasetConnectorId}/test": {
      "post": {
        "tags": [
          "mainframeDatasetConnector"
        ],
        "summary": "Test Mainframe Dataset connector by ID",
        "description": "WARNING: There is a known bug in the API Client where it is impossible to submit a request with an 'empty' body. As such, only the 'full' body variant of this endpoint can be used through the API Client. To use the 'empty' body variant of this endpoint, please do not use the API Client, but instead use curl or some other method of issuing HTTP requests.",
        "operationId": "testMainframeDatasetConnector",
        "parameters": [
          {
            "name": "mainframeDatasetConnectorId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset connector to test",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The Mainframe Dataset connector to test. This field is optional and if no password or sshkey is supplied with the connector then the password associated with the fileConnectorId will be used.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetConnector"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TestConnectorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid mainframeDatasetConnectorId supplied"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Mainframe Dataset Connector not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetConnectorValidator",
        "x-audit-action-type": "TEST",
        "x-audit-ignore-return": true,
        "x-audit-target": "MAINFRAME_DATASET_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/mainframe-dataset-connectors/test": {
      "post": {
        "tags": [
          "mainframeDatasetConnector"
        ],
        "summary": "Test an unsaved Mainframe Dataset connector",
        "operationId": "testUnsavedMainframeDatasetConnector",
        "requestBody": {
          "description": "The Mainframe Dataset connector to test",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetConnector"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TestConnectorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetConnectorsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetConnectorConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetConnectorManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetConnectorValidator",
        "x-audit-action-type": "TEST",
        "x-audit-ignore-return": true,
        "x-audit-target": "MAINFRAME_DATASET_CONNECTOR",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/mainframe-dataset-field-metadata": {
      "get": {
        "tags": [
          "mainframeDatasetFieldMetadata"
        ],
        "summary": "Get all Mainframe Dataset field metadata",
        "operationId": "getAllMainframeDatasetFieldMetadata",
        "parameters": [
          {
            "name": "mainframe_dataset_format_id",
            "in": "query",
            "description": "The ID of the Mainframe Dataset format to get all Mainframe Dataset field metadata from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "is_masked",
            "in": "query",
            "description": "Get only masked Mainframe Dataset field metadata when this is true and only unmasked Mainframe Dataset field metadata when this is false",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get Mainframe Dataset field metadata. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetFieldMetadataList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetFieldMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetFieldConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetFieldMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetFieldMetadataValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "MAINFRAME_DATASET_FIELD_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mainframe-dataset-field-metadata/{mainframeDatasetFieldMetadataId}": {
      "get": {
        "tags": [
          "mainframeDatasetFieldMetadata"
        ],
        "summary": "Get Mainframe Dataset field metadata by ID",
        "operationId": "getMainframeDatasetFieldMetadataById",
        "parameters": [
          {
            "name": "mainframeDatasetFieldMetadataId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset field metadata to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetFieldMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetFieldMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetFieldConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetFieldMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetFieldMetadataValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "MAINFRAME_DATASET_FIELD_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "mainframeDatasetFieldMetadata"
        ],
        "summary": "Update Mainframe Dataset field metadata by ID",
        "operationId": "updateMainframeDatasetFieldMetadata",
        "parameters": [
          {
            "name": "mainframeDatasetFieldMetadataId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset field metadata to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated Mainframe Dataset field metadata",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetFieldMetadata"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetFieldMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetFieldMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetFieldConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetFieldMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetFieldMetadataValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "MAINFRAME_DATASET_FIELD_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/mainframe-dataset-formats": {
      "get": {
        "tags": [
          "mainframeDatasetFormat"
        ],
        "summary": "Get all Mainframe Dataset formats",
        "operationId": "getAllMainframeDatasetFormats",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get Mainframe Dataset formats. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetFormatList"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetFormatConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetFormatValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "MAINFRAME_DATASET_FORMAT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "mainframeDatasetFormat"
        ],
        "summary": "Create Mainframe Dataset format",
        "description": "WARNING: The generated curl command is incorrect, so please refer to the Masking API guide for instructions on how to upload Mainframe Dataset files through the API",
        "operationId": "createMainframeDatasetFormat",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetFormatBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetFormat"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetFormatConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetFormatValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "MAINFRAME_DATASET_FORMAT",
        "x-contentType": "multipart/form-data",
        "x-accepts": "application/json"
      }
    },
    "/mainframe-dataset-formats/{mainframeDatasetFormatId}": {
      "get": {
        "tags": [
          "mainframeDatasetFormat"
        ],
        "summary": "Get Mainframe Dataset format by ID",
        "operationId": "getMainframeDatasetFormatById",
        "parameters": [
          {
            "name": "mainframeDatasetFormatId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset format to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetFormat"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetFormatConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetFormatValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "MAINFRAME_DATASET_FORMAT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "delete": {
        "tags": [
          "mainframeDatasetFormat"
        ],
        "summary": "Delete Mainframe Dataset format by ID",
        "operationId": "deleteMainframeDatasetFormat",
        "parameters": [
          {
            "name": "mainframeDatasetFormatId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset format to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetFormatConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetFormatValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getMainframeDatasetFormatById",
        "x-audit-target": "MAINFRAME_DATASET_FORMAT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mainframe-dataset-formats/{mainframeDatasetFormatId}/copy": {
      "put": {
        "tags": [
          "mainframeDatasetFormat"
        ],
        "summary": "Copy mainframe dataset format by ID",
        "operationId": "copyMainframeDatasetFormat",
        "parameters": [
          {
            "name": "mainframeDatasetFormatId",
            "in": "path",
            "description": "The ID of the mainframe dataset format to duplicate",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The name for the new mainframe dataset format copy",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetFormatCopy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetFormat"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetFormatConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetFormatValidator",
        "x-manager-needs-user": true,
        "x-audit-ignore-return": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "MAINFRAME_DATASET_FORMAT",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body",
        "x-swagger-hibernate-converter-ignore": true
      }
    },
    "/mainframe-dataset-formats/{mainframeDatasetFormatId}/export": {
      "post": {
        "tags": [
          "mainframeDatasetFormat"
        ],
        "summary": "Export Mainframe Dataset Format",
        "description": "Export a Mainframe Dataset format by ID. Returns a download ID that can be used to download the copybook file in VSAM format.",
        "operationId": "exportMainframeDatasetFormat",
        "parameters": [
          {
            "name": "mainframeDatasetFormatId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset format to export",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetFormat"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetFormatsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetFormatConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetFormatManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetFormatValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "MAINFRAME_DATASET_FORMAT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mainframe-dataset-metadata": {
      "get": {
        "tags": [
          "mainframeDatasetMetadata"
        ],
        "summary": "Get all Mainframe Dataset metadata",
        "operationId": "getAllMainframeDatasetMetadata",
        "parameters": [
          {
            "name": "ruleset_id",
            "in": "query",
            "description": "The ID of the ruleset to get all Mainframe Dataset metadata from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get Mainframe Dataset metadata. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetMetadataList"
                }
              }
            }
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetMetadataValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "MAINFRAME_DATASET_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "mainframeDatasetMetadata"
        ],
        "summary": "Create Mainframe Dataset metadata",
        "operationId": "createMainframeDatasetMetadata",
        "requestBody": {
          "description": "The Mainframe Dataset metadata to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetMetadata"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetMetadata"
                }
              }
            }
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetMetadataValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "MAINFRAME_DATASET_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/mainframe-dataset-metadata/{mainframeDatasetMetadataId}": {
      "get": {
        "tags": [
          "mainframeDatasetMetadata"
        ],
        "summary": "Get Mainframe Dataset metadata by ID",
        "operationId": "getMainframeDatasetMetadataById",
        "parameters": [
          {
            "name": "mainframeDatasetMetadataId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset metadata to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Invalid mainframeDatasetMetadataId supplied"
          },
          "404": {
            "description": "MainframeDatasetMetadata not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetMetadataValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "MAINFRAME_DATASET_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "mainframeDatasetMetadata"
        ],
        "summary": "Update Mainframe Dataset metadata by ID",
        "operationId": "updateMainframeDatasetMetadata",
        "parameters": [
          {
            "name": "mainframeDatasetMetadataId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset metadata to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated Mainframe Dataset metadata",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetMetadata"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Invalid mainframeDatasetMetadataId supplied"
          },
          "404": {
            "description": "MainframeDatasetMetadata not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetMetadataValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "MAINFRAME_DATASET_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "mainframeDatasetMetadata"
        ],
        "summary": "Delete Mainframe Dataset metadata by ID",
        "operationId": "deleteMainframeDatasetMetadata",
        "parameters": [
          {
            "name": "mainframeDatasetMetadataId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset metadata to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation"
          },
          "400": {
            "description": "Invalid mainframeDatasetMetadataId supplied"
          },
          "404": {
            "description": "MainframeDatasetMetadata not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetMetadataValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getMainframeDatasetMetadataById",
        "x-audit-target": "MAINFRAME_DATASET_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mainframe-dataset-record-types": {
      "get": {
        "tags": [
          "mainframeDatasetRecordType"
        ],
        "summary": "Get all Mainframe Dataset record type",
        "operationId": "getAllMainframeDatasetRecordTypes",
        "parameters": [
          {
            "name": "mainframe_dataset_format_id",
            "in": "query",
            "description": "The ID of the Mainframe Dataset format to get all Mainframe Dataset record types from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get mainframe dataset record types. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetRecordTypeList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetRecordTypesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetRecordTypeConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetRecordTypeManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetRecordTypeValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "MAINFRAME_DATASET_RECORD_TYPE",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mainframe-dataset-record-types/{mainframeDatasetRecordTypeId}": {
      "get": {
        "tags": [
          "mainframeDatasetRecordType"
        ],
        "summary": "Get Mainframe Dataset record type by ID",
        "operationId": "getMainframeDatasetRecordTypeById",
        "parameters": [
          {
            "name": "mainframeDatasetRecordTypeId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset record type to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetRecordType"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetRecordTypesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetRecordTypeConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetRecordTypeManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetRecordTypeValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "MAINFRAME_DATASET_RECORD_TYPE",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "mainframeDatasetRecordType"
        ],
        "summary": "Update Mainframe Dataset record type by ID",
        "operationId": "updateMainframeDatasetRecordType",
        "parameters": [
          {
            "name": "mainframeDatasetRecordTypeId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset record type to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated Mainframe Dataset record type",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetRecordType"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetRecordType"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMainframeDatasetRecordTypesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetRecordTypeConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetRecordTypeManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetRecordTypeValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "MAINFRAME_DATASET_RECORD_TYPE",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/mainframe-dataset-rulesets": {
      "get": {
        "tags": [
          "mainframeDatasetRuleset"
        ],
        "summary": "Get all Mainframe Dataset rulesets",
        "operationId": "getAllMainframeDatasetRulesets",
        "parameters": [
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the environment to get all Mainframe Dataset rulesets from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get Mainframe Dataset rulesets. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetRulesetList"
                }
              }
            }
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerMainframeDatasetRulesetsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetRulesetConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetRulesetManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetRulesetValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "MAINFRAME_DATASET_RULESET",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "mainframeDatasetRuleset"
        ],
        "summary": "Create Mainframe Dataset ruleset",
        "operationId": "createMainframeDatasetRuleset",
        "requestBody": {
          "description": "The Mainframe Dataset ruleset to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetRuleset"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetRuleset"
                }
              }
            }
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerMainframeDatasetRulesetsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetRulesetConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetRulesetManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetRulesetValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "MAINFRAME_DATASET_RULESET",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/mainframe-dataset-rulesets/{mainframeDatasetRulesetId}": {
      "get": {
        "tags": [
          "mainframeDatasetRuleset"
        ],
        "summary": "Get Mainframe Dataset ruleset by ID",
        "operationId": "getMainframeDatasetRulesetById",
        "parameters": [
          {
            "name": "mainframeDatasetRulesetId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset ruleset to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetRuleset"
                }
              }
            }
          },
          "400": {
            "description": "Invalid mainframeDatasetRulesetId supplied"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "MainframeDatasetRuleset not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerMainframeDatasetRulesetsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetRulesetConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetRulesetManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetRulesetValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "MAINFRAME_DATASET_RULESET",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "delete": {
        "tags": [
          "mainframeDatasetRuleset"
        ],
        "summary": "Delete Mainframe Dataset ruleset by ID",
        "operationId": "deleteMainframeDatasetRuleset",
        "parameters": [
          {
            "name": "mainframeDatasetRulesetId",
            "in": "path",
            "description": "The ID of the Mainframe Dataset ruleset to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation"
          },
          "400": {
            "description": "Invalid mainframeDatasetRulesetId supplied"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "MainframeDatasetRuleset not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerMainframeDatasetRulesetsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MainframeDatasetRulesetConverter",
        "x-operator-class": "com.dmsuite.manager.MainframeDatasetRulesetManager",
        "x-validator-class": "com.dmsuite.web.validators.MainframeDatasetRulesetValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getMainframeDatasetRulesetById",
        "x-audit-target": "MAINFRAME_DATASET_RULESET",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mainframe-dataset-rulesets/{mainframeDatasetRulesetId}/bulk-mainframe-dataset-update": {
      "put": {
        "tags": [
          "mainframeDatasetRuleset"
        ],
        "summary": "Update the set of mainframe datasets and their attributes associated with a mainframe dataset ruleset in bulk",
        "operationId": "bulkMainframeDatasetUpdate",
        "parameters": [
          {
            "name": "mainframeDatasetRulesetId",
            "in": "path",
            "description": "The ID of the mainframe dataset ruleset to update the mainframe dataset for",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The exact list of mainframe datasets to put in the ruleset. Note that existing datasets for this ruleset not in this list will be deleted",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetMetadataBulkInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerMainframeDatasetRulesetsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/mainframe-dataset-rulesets/{mainframeDatasetRulesetId}/copy": {
      "put": {
        "tags": [
          "mainframeDatasetRuleset"
        ],
        "summary": "Copy mainframe dataset ruleset by ID",
        "operationId": "copyMainframeDatasetRuleset",
        "parameters": [
          {
            "name": "mainframeDatasetRulesetId",
            "in": "path",
            "description": "The ID of the mainframe dataset ruleset to copy",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The name of the ruleset. This must be unique within an environment.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MainframeDatasetRulesetCopy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MainframeDatasetRuleset"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerMainframeDatasetRulesetsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/mapping-algorithms/{algorithmName}/add-mappings": {
      "post": {
        "tags": [
          "mappingAlgorithm"
        ],
        "summary": "Add mappings for mapping algorithm",
        "operationId": "addMappingAlgorithmMappings",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the mapping algorithm.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fileReferenceId",
            "in": "query",
            "description": "The reference URI of the uploaded file to be installed. This file should have been uploaded via the /fileUpload endpoint.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "passphrase",
            "in": "query",
            "description": "The passphrase that an exported CSV mapping file was encrypted with. This is only needed if adding mappings that were previously exported.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mappingFileType",
            "in": "query",
            "description": "The type of the file provided. If PLAINTEXT is chosen, the file is expected to contain newline delimited outputs. If CSV is chosen, the file is expected to conform to RFC4180. Additionally, 2 columns are expected - input and output. The first row of the CSV must be a header.",
            "schema": {
              "type": "string",
              "enum": [
                "PLAINTEXT",
                "CSV"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerMappingAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mapping-algorithms/{algorithmName}/delete-mappings": {
      "delete": {
        "tags": [
          "mappingAlgorithm"
        ],
        "summary": "Irreversibly delete all saved mappings for mapping algorithm.",
        "operationId": "deleteMappingAlgorithmMappings",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the mapping algorithm.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerMappingAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mapping-algorithms/{algorithmName}/export-mappings": {
      "post": {
        "tags": [
          "mappingAlgorithm"
        ],
        "summary": "Export mappings for mapping algorithm",
        "operationId": "exportMappings",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the mapping algorithm.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "passphrase",
            "in": "query",
            "description": "The passphrase to use to encrypt the mappings in the export file.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerMappingAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mapping-algorithms/{algorithmName}/reset": {
      "post": {
        "tags": [
          "mappingAlgorithm"
        ],
        "summary": "Reset mappings for mapping algorithm.",
        "operationId": "resetMappingAlgorithm",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the mapping algorithm.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerMappingAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mapping-algorithms/{algorithmName}/stats": {
      "get": {
        "tags": [
          "mappingAlgorithm"
        ],
        "summary": "Get stats for mapping algorithm",
        "operationId": "getMappingAlgorithmStats",
        "parameters": [
          {
            "name": "algorithmName",
            "in": "path",
            "description": "The name of the mapping algorithm.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingAlgorithmStats"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerMappingAlgorithmsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/masking-jobs": {
      "get": {
        "tags": [
          "maskingJob"
        ],
        "summary": "Get all masking jobs",
        "operationId": "getAllMaskingJobs",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get masking jobs. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the environment to get all masking jobs from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaskingJobList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMaskingJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MaskingJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "MASKING_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "maskingJob"
        ],
        "summary": "Create masking job",
        "operationId": "createMaskingJob",
        "requestBody": {
          "description": "The masking job to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MaskingJob"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaskingJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenMaskingJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MaskingJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-manager-needs-user": true,
        "x-notification-callback": false,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "MASKING_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/masking-jobs/{maskingJobId}": {
      "get": {
        "tags": [
          "maskingJob"
        ],
        "summary": "Get masking job by ID",
        "operationId": "getMaskingJobById",
        "parameters": [
          {
            "name": "maskingJobId",
            "in": "path",
            "description": "The ID of the masking job to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaskingJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMaskingJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MaskingJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "MASKING_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "maskingJob"
        ],
        "summary": "Update masking job by ID",
        "operationId": "updateMaskingJob",
        "parameters": [
          {
            "name": "maskingJobId",
            "in": "path",
            "description": "The ID of the masking job to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated masking job",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MaskingJob"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaskingJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMaskingJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MaskingJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "MASKING_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "maskingJob"
        ],
        "summary": "Delete masking job by ID",
        "operationId": "deleteMaskingJob",
        "parameters": [
          {
            "name": "maskingJobId",
            "in": "path",
            "description": "The ID of the masking job to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMaskingJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MaskingJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getMaskingJobById",
        "x-audit-target": "MASKING_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/monitor-task": {
      "get": {
        "tags": [
          "monitoring"
        ],
        "summary": "Get status of Executions and async tasks",
        "operationId": "getAllTaskStatus",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get tasks for monitor. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "The state of task to get the status. Default is to return running tasks",
            "schema": {
              "type": "string",
              "enum": [
                "RUNNING"
              ],
              "default": "RUNNING"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorTaskList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMonitorTaskController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MonitorTaskConverter",
        "x-operator-class": "com.dmsuite.manager.MonitorManager",
        "x-validator-class": "com.dmsuite.web.validators.MonitorTaskValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "MONITOR_TASK",
        "x-manager-needs-user": true,
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/monitor-task/{taskId}": {
      "get": {
        "tags": [
          "monitoring"
        ],
        "summary": "Get status of Executions or async tasks by id",
        "operationId": "getTaskStatusByTypeAndId",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "The ID of the monitorable task to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "monitorable_task",
            "in": "query",
            "description": "The type of monitorable task to check progress",
            "schema": {
              "type": "string",
              "enum": [
                "EXECUTIONS"
              ],
              "default": "EXECUTIONS"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMonitorTaskController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MonitorTaskConverter",
        "x-operator-class": "com.dmsuite.manager.MonitorManager",
        "x-validator-class": "com.dmsuite.web.validators.MonitorTaskValidator",
        "x-audit-action-type": "GET",
        "x-audit-ignore-return": true,
        "x-audit-target": "MONITOR_TASK",
        "x-manager-needs-user": true,
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mount-filesystem": {
      "get": {
        "tags": [
          "mountFilesystem"
        ],
        "summary": "Get all mounts",
        "operationId": "getAllMounts",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get mount information. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MountInformationList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMountFilesystemController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MountFilesystemConverter",
        "x-operator-class": "com.dmsuite.manager.MountFilesystemManager",
        "x-validator-class": "com.dmsuite.web.validators.MountFilesystemValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "MOUNT_FILESYSTEM",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "mountFilesystem"
        ],
        "summary": "Create filesystem mount",
        "operationId": "createMountFilesystem",
        "requestBody": {
          "description": "The filesystem to mount",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MountInformation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MountInformation"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenMountFilesystemController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MountFilesystemConverter",
        "x-operator-class": "com.dmsuite.manager.MountFilesystemManager",
        "x-validator-class": "com.dmsuite.web.validators.MountFilesystemValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "MOUNT_FILESYSTEM",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/mount-filesystem/{mountID}": {
      "get": {
        "tags": [
          "mountFilesystem"
        ],
        "summary": "Get mount by ID",
        "operationId": "getMountByID",
        "parameters": [
          {
            "name": "mountID",
            "in": "path",
            "description": "The ID of the mount to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MountInformation"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMountFilesystemController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MountFilesystemConverter",
        "x-operator-class": "com.dmsuite.manager.MountFilesystemManager",
        "x-validator-class": "com.dmsuite.web.validators.MountFilesystemValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET",
        "x-audit-target": "MOUNT_FILESYSTEM",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "mountFilesystem"
        ],
        "summary": "Update filesystem mount",
        "operationId": "updateMountFilesystem",
        "parameters": [
          {
            "name": "mountID",
            "in": "path",
            "description": "The ID of the mount to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated filesystem",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MountInformation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MountInformation"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMountFilesystemController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MountFilesystemConverter",
        "x-operator-class": "com.dmsuite.manager.MountFilesystemManager",
        "x-validator-class": "com.dmsuite.web.validators.MountFilesystemValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "EDIT",
        "x-audit-target": "MOUNT_FILESYSTEM",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "mountFilesystem"
        ],
        "summary": "Delete filesystem mount",
        "operationId": "deleteMountFilesystem",
        "parameters": [
          {
            "name": "mountID",
            "in": "path",
            "description": "The ID of the mount to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMountFilesystemController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MountFilesystemConverter",
        "x-operator-class": "com.dmsuite.manager.MountFilesystemManager",
        "x-validator-class": "com.dmsuite.web.validators.MountFilesystemValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getMountByID",
        "x-audit-target": "MOUNT_FILESYSTEM",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mount-filesystem/{mountID}/connect": {
      "put": {
        "tags": [
          "mountFilesystem"
        ],
        "summary": "Connect filesystem mount",
        "operationId": "connectMountFilesystem",
        "parameters": [
          {
            "name": "mountID",
            "in": "path",
            "description": "The ID of the mount to connect",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MountInformation"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMountFilesystemController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MountFilesystemConverter",
        "x-operator-class": "com.dmsuite.manager.MountFilesystemManager",
        "x-validator-class": "com.dmsuite.web.validators.MountFilesystemValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CONNECT",
        "x-audit-target": "MOUNT_FILESYSTEM",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mount-filesystem/{mountID}/disconnect": {
      "put": {
        "tags": [
          "mountFilesystem"
        ],
        "summary": "Disconnect filesystem mount",
        "operationId": "disconnectMountFilesystem",
        "parameters": [
          {
            "name": "mountID",
            "in": "path",
            "description": "The ID of the mount to disconnect",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MountInformation"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMountFilesystemController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MountFilesystemConverter",
        "x-operator-class": "com.dmsuite.manager.MountFilesystemManager",
        "x-validator-class": "com.dmsuite.web.validators.MountFilesystemValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "DISCONNECT",
        "x-audit-target": "MOUNT_FILESYSTEM",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/mount-filesystem/{mountID}/remount": {
      "put": {
        "tags": [
          "mountFilesystem"
        ],
        "summary": "Remount filesystem mount",
        "operationId": "remountMountFilesystem",
        "parameters": [
          {
            "name": "mountID",
            "in": "path",
            "description": "The ID of the mount to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated filesystem",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MountInformation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MountInformation"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenMountFilesystemController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.MountFilesystemConverter",
        "x-operator-class": "com.dmsuite.manager.MountFilesystemManager",
        "x-validator-class": "com.dmsuite.web.validators.MountFilesystemValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "EDIT",
        "x-audit-target": "MOUNT_FILESYSTEM",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/non-conformant-data-sample": {
      "get": {
        "tags": [
          "nonConformantDataSample"
        ],
        "summary": "Get all non-conformant data samples",
        "description": "Get redacted data samples associated with non-conforming data execution events.",
        "operationId": "getAllNonConformantDataSamples",
        "parameters": [
          {
            "name": "execution_event_id",
            "in": "query",
            "description": "The ID(s) of the execution event(s) for which to get all non-conformant data samples",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get non-conformant data samples. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NonConformantDataSampleList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerNonConformantDataSampleController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.NonConformantDataSampleConverter",
        "x-operator-class": "com.dmsuite.manager.NonConformantDataSampleManager",
        "x-validator-class": "com.dmsuite.web.validators.NonConformantDataSampleValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "NON_CONFORMING_DATA_SAMPLE",
        "x-manager-needs-user": true,
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/password-vaults": {
      "get": {
        "tags": [
          "passwordVault"
        ],
        "summary": "Get all password vaults",
        "operationId": "getAllPasswordVaults",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get password vaults. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PasswordVaultList"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenPasswordVaultsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.PasswordVaultConverter",
        "x-operator-class": "com.dmsuite.manager.PasswordVaultManager",
        "x-validator-class": "com.dmsuite.web.validators.PasswordVaultValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "PASSWORD_VAULT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "passwordVault"
        ],
        "summary": "Create password vault",
        "operationId": "createPasswordVault",
        "requestBody": {
          "description": "The password vault to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordVault"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PasswordVault"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenPasswordVaultsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.PasswordVaultConverter",
        "x-operator-class": "com.dmsuite.manager.PasswordVaultManager",
        "x-validator-class": "com.dmsuite.web.validators.PasswordVaultValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-ignore-return": true,
        "x-audit-target": "PASSWORD_VAULT",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/password-vaults/{passwordVaultId}": {
      "get": {
        "tags": [
          "passwordVault"
        ],
        "summary": "Get password vault by ID",
        "operationId": "getPasswordVaultById",
        "parameters": [
          {
            "name": "passwordVaultId",
            "in": "path",
            "description": "The ID of the password vault to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PasswordVault"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenPasswordVaultsController",
        "x-operator-class": "com.dmsuite.manager.PasswordVaultManager",
        "x-validator-class": "com.dmsuite.web.validators.PasswordVaultValidator",
        "x-converter-class": "com.dmsuite.web.swagger.converter.PasswordVaultConverter",
        "x-audit-action-type": "GET",
        "x-audit-target": "PASSWORD_VAULT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "passwordVault"
        ],
        "summary": "Update password vault by ID",
        "operationId": "updatePasswordVault",
        "parameters": [
          {
            "name": "passwordVaultId",
            "in": "path",
            "description": "The ID of the password vault to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated password vault",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordVault"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PasswordVault"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenPasswordVaultsController",
        "x-operator-class": "com.dmsuite.manager.PasswordVaultManager",
        "x-validator-class": "com.dmsuite.web.validators.PasswordVaultValidator",
        "x-converter-class": "com.dmsuite.web.swagger.converter.PasswordVaultConverter",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "PASSWORD_VAULT",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "passwordVault"
        ],
        "summary": "Delete password vault by ID",
        "operationId": "deletePasswordVault",
        "parameters": [
          {
            "name": "passwordVaultId",
            "in": "path",
            "description": "The ID of the password vault to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenPasswordVaultsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.PasswordVaultConverter",
        "x-operator-class": "com.dmsuite.manager.PasswordVaultManager",
        "x-validator-class": "com.dmsuite.web.validators.PasswordVaultValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getPasswordVaultById",
        "x-audit-target": "PASSWORD_VAULT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/plugin": {
      "get": {
        "tags": [
          "plugin"
        ],
        "summary": "Get all plugins",
        "description": "Get a detailed list of all installed plugins",
        "operationId": "getAllPlugins",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get algorithm plugins. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "pluginType",
            "in": "query",
            "description": "The type of plugin to retrieve.",
            "schema": {
              "type": "string",
              "enum": [
                "EXTENDED_ALGORITHM",
                "DRIVER_SUPPORT"
              ],
              "default": "EXTENDED_ALGORITHM"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PluginList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "GenPluginController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.PluginConverter",
        "x-operator-class": "com.dmsuite.manager.PluginManager",
        "x-validator-class": "com.dmsuite.web.validators.PluginValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "PLUGIN",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "plugin"
        ],
        "summary": "Install plugin",
        "description": "Install an uploaded plugin file onto the system",
        "operationId": "createPlugin",
        "parameters": [
          {
            "name": "fileReferenceId",
            "in": "query",
            "description": "The file references ID of the uploaded plugin JAR file to install",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pluginName",
            "in": "query",
            "description": "Override the default name of the plugin. Plugin names must be unique across plugins of the same type on the engine.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pluginType",
            "in": "query",
            "description": "The type of plugin to retrieve.",
            "schema": {
              "type": "string",
              "enum": [
                "EXTENDED_ALGORITHM",
                "DRIVER_SUPPORT"
              ],
              "default": "EXTENDED_ALGORITHM"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Plugin"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenPluginController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.PluginConverter",
        "x-operator-class": "com.dmsuite.manager.PluginManager",
        "x-validator-class": "com.dmsuite.web.validators.PluginValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "PLUGIN",
        "x-manager-needs-user": true,
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/plugin/{pluginId}": {
      "get": {
        "tags": [
          "plugin"
        ],
        "summary": "Get plugin detail by pluginId",
        "description": "Get detailed information about an installed plugin by pluginId",
        "operationId": "getPlugin",
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "description": "The ID of the plugin to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Plugin"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenPluginController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.PluginConverter",
        "x-operator-class": "com.dmsuite.manager.PluginManager",
        "x-validator-class": "com.dmsuite.web.validators.PluginValidator",
        "x-audit-action-type": "GET",
        "x-audit-ignore-return": true,
        "x-audit-target": "PLUGIN",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "plugin"
        ],
        "summary": "Update plugin",
        "description": "Update an installed plugin to use the uploaded JAR file. The new plugin must contain all components delivered by the previous version.",
        "operationId": "updatePlugin",
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "description": "The ID of the plugin to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "fileReferenceId",
            "in": "query",
            "description": "The file references ID of the new uploaded plugin JAR file",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Plugin"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenPluginController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.PluginConverter",
        "x-operator-class": "com.dmsuite.manager.PluginManager",
        "x-validator-class": "com.dmsuite.web.validators.PluginValidator",
        "x-audit-action-type": "EDIT",
        "x-manager-needs-user": true,
        "x-audit-target": "PLUGIN",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "delete": {
        "tags": [
          "plugin"
        ],
        "summary": "Delete plugin",
        "description": "Delete an installed plugin.",
        "operationId": "deletePlugin",
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "description": "The ID of the plugin to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "force",
            "in": "query",
            "description": "Force deletion of all dependent usage associated with the plugin, such as inventory and domain assignments of algorithms",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenPluginController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.PluginConverter",
        "x-operator-class": "com.dmsuite.manager.PluginManager",
        "x-validator-class": "com.dmsuite.web.validators.PluginValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-special-delete": true,
        "x-audit-target": "PLUGIN",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/plugin/{pluginId}/export": {
      "post": {
        "tags": [
          "plugin"
        ],
        "summary": "Export plugin JAR",
        "description": "Export the original JAR file of an installed (non-built-in) plugin. Returns a fileDownloadId; pass it to GET /file-downloads/{fileDownloadId} to download the JAR.",
        "operationId": "exportPlugin",
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "description": "The ID of the plugin to export",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PluginExport"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenPluginController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.PluginConverter",
        "x-operator-class": "com.dmsuite.manager.PluginManager",
        "x-validator-class": "com.dmsuite.web.validators.PluginValidator",
        "x-audit-action-type": "EXPORT",
        "x-audit-ignore-return": true,
        "x-audit-target": "PLUGIN",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/profile-jobs": {
      "get": {
        "tags": [
          "profileJob"
        ],
        "summary": "Get all profile jobs",
        "operationId": "getAllProfileJobs",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get profile jobs. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the environment to get all profile jobs from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileJobList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenProfileJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfileJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "PROFILE_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "profileJob"
        ],
        "summary": "Create profile job",
        "operationId": "createProfileJob",
        "requestBody": {
          "description": "The profile job to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileJob"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenProfileJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfileJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "PROFILE_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/profile-jobs/{profileJobId}": {
      "get": {
        "tags": [
          "profileJob"
        ],
        "summary": "Get profile job by ID",
        "operationId": "getProfileJobById",
        "parameters": [
          {
            "name": "profileJobId",
            "in": "path",
            "description": "The ID of the profile job to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenProfileJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfileJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "PROFILE_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "profileJob"
        ],
        "summary": "Update profile job by ID",
        "operationId": "updateProfileJob",
        "parameters": [
          {
            "name": "profileJobId",
            "in": "path",
            "description": "The ID of the profile job to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated profile job",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileJob"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenProfileJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfileJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "PROFILE_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "profileJob"
        ],
        "summary": "Delete profile job by ID",
        "operationId": "deleteProfileJob",
        "parameters": [
          {
            "name": "profileJobId",
            "in": "path",
            "description": "The ID of the profile job to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenProfileJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfileJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getProfileJobById",
        "x-audit-target": "PROFILE_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/profile-sets": {
      "get": {
        "tags": [
          "profileSet"
        ],
        "summary": "Get all profile sets",
        "operationId": "getAllProfileSets",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get profile sets. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting property if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileSetList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerProfileSetsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfileSetConverter",
        "x-operator-class": "com.dmsuite.manager.ProfileSetManager",
        "x-validator-class": "com.dmsuite.web.validators.ProfileSetValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "PROFILE_SET",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "profileSet"
        ],
        "summary": "Create profile set",
        "operationId": "createProfileSet",
        "requestBody": {
          "description": "The profile set to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileSet"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileSet"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerProfileSetsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfileSetConverter",
        "x-operator-class": "com.dmsuite.manager.ProfileSetManager",
        "x-validator-class": "com.dmsuite.web.validators.ProfileSetValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "PROFILE_SET",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/profile-sets/{profileSetId}": {
      "get": {
        "tags": [
          "profileSet"
        ],
        "summary": "Get profile set by ID",
        "operationId": "getProfileSetById",
        "parameters": [
          {
            "name": "profileSetId",
            "in": "path",
            "description": "The ID of the profile set to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileSet"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerProfileSetsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfileSetConverter",
        "x-operator-class": "com.dmsuite.manager.ProfileSetManager",
        "x-validator-class": "com.dmsuite.web.validators.ProfileSetValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "PROFILE_SET",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "profileSet"
        ],
        "summary": "Update profile set by ID",
        "operationId": "updateProfileSet",
        "parameters": [
          {
            "name": "profileSetId",
            "in": "path",
            "description": "The ID of the profile set to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated profile set",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileSet"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileSet"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerProfileSetsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfileSetConverter",
        "x-operator-class": "com.dmsuite.manager.ProfileSetManager",
        "x-validator-class": "com.dmsuite.web.validators.ProfileSetValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "PROFILE_SET",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "profileSet"
        ],
        "summary": "Delete profile set by ID",
        "operationId": "deleteProfileSet",
        "parameters": [
          {
            "name": "profileSetId",
            "in": "path",
            "description": "The ID of the profile set to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerProfileSetsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfileSetConverter",
        "x-operator-class": "com.dmsuite.manager.ProfileSetManager",
        "x-validator-class": "com.dmsuite.web.validators.ProfileSetValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getProfileSetById",
        "x-audit-target": "PROFILE_SET",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/profile-sets/{profileSetId}/export": {
      "post": {
        "tags": [
          "profileSet"
        ],
        "summary": "Export a zip file of the specified profile set's configuration JSON and the files used by its classifiers",
        "operationId": "exportProfileSet",
        "parameters": [
          {
            "name": "profileSetId",
            "in": "path",
            "description": "The ID of the profile set",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerProfileSetsController",
        "x-audit-action-type": "EXPORT",
        "x-audit-target": "PROFILE_SET"
      }
    },
    "/profile-sets/usage": {
      "get": {
        "tags": [
          "profileSet"
        ],
        "summary": "Generate a report listing all usage of profile sets on the masking engine",
        "operationId": "getProfileSetUsage",
        "parameters": [
          {
            "name": "includeAssignmentDetail",
            "in": "query",
            "description": "Whether to include extended, human-readable profile set assignment detail in the report.",
            "required": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "profileSetType",
            "in": "query",
            "description": "Whether to filter by specific profile set type. If not specified, all profile set types are included.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASDD",
                "LEGACY"
              ]
            }
          },
          {
            "name": "connectorType",
            "in": "query",
            "description": "Whether to filter by specific connector type. If not specified, all connector types are included.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DATABASE",
                "FILE",
                "MAINFRAME"
              ]
            }
          },
          {
            "name": "environmentFilter",
            "in": "query",
            "description": "Report only usage occurring within the specified environment(s).",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "profileSetFilter",
            "in": "query",
            "description": "Report only usage of the specified profile set(s).",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileSetUsageList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerProfileSetsController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/profile-results-database/{executionId}": {
      "get": {
        "tags": [
          "profileResultDatabase"
        ],
        "summary": "Get profile report by executionId",
        "description": "Get profile results by executionId",
        "operationId": "getProfileResultsDatabaseByExecutionId",
        "parameters": [
          {
            "name": "executionId",
            "in": "path",
            "description": "The ID of the execution",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "Sort by field.",
            "schema": {
              "type": "string",
              "enum": [
                "algorithmName",
                "columnName",
                "domainName",
                "tableName"
              ]
            }
          },
          {
            "name": "sort_dir",
            "in": "query",
            "description": "Sort direction.",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get algorithms. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResultDatabaseList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenProfileResultsDatabaseController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfilerResultDatabaseConverter",
        "x-operator-class": "com.dmsuite.manager.ProfilerResultDatabaseManager",
        "x-validator-class": "com.dmsuite.web.validators.ProfilerResultDatabaseValidator",
        "x-audit-action-type": "GET",
        "x-audit-ignore-return": true,
        "x-audit-target": "PROFILE_RESULT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/profile-results-file/{executionId}": {
      "get": {
        "tags": [
          "profileResultFile"
        ],
        "summary": "Get profile file report by executionId",
        "description": "Get profile file results by executionId",
        "operationId": "getProfileResultsFileByExecutionId",
        "parameters": [
          {
            "name": "executionId",
            "in": "path",
            "description": "The ID of the execution",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "Sort by field.",
            "schema": {
              "type": "string",
              "enum": [
                "algorithmName",
                "domainName",
                "fieldName",
                "fileName"
              ]
            }
          },
          {
            "name": "sort_dir",
            "in": "query",
            "description": "Sort direction.",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get algorithms. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting property if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResultFileList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenProfileResultsFileController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfilerResultFileConverter",
        "x-operator-class": "com.dmsuite.manager.ProfilerResultFileManager",
        "x-validator-class": "com.dmsuite.web.validators.ProfilerResultFileValidator",
        "x-audit-action-type": "GET",
        "x-audit-ignore-return": true,
        "x-audit-target": "PROFILE_RESULT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/profile-results-mainframe/{executionId}": {
      "get": {
        "tags": [
          "profileResultMainframe"
        ],
        "summary": "Get profile mainframe report by executionId",
        "description": "Get profile mainframe results by executionId",
        "operationId": "getProfileResultsMainframeByExecutionId",
        "parameters": [
          {
            "name": "executionId",
            "in": "path",
            "description": "The ID of the execution",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "Sort by field.",
            "schema": {
              "type": "string",
              "enum": [
                "algorithmName",
                "domainName",
                "fieldName",
                "fileName"
              ]
            }
          },
          {
            "name": "sort_dir",
            "in": "query",
            "description": "Sort direction.",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get algorithms. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting property if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResultMainframeList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenProfileResultsMainframeController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ProfilerResultMainframeConverter",
        "x-operator-class": "com.dmsuite.manager.ProfilerResultMainframeManager",
        "x-validator-class": "com.dmsuite.web.validators.ProfilerResultMainframeValidator",
        "x-audit-action-type": "GET",
        "x-audit-ignore-return": true,
        "x-audit-target": "PROFILE_RESULT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/record-types": {
      "get": {
        "tags": [
          "recordType"
        ],
        "summary": "Get all record type",
        "operationId": "getAllRecordTypes",
        "parameters": [
          {
            "name": "file_format_id",
            "in": "query",
            "description": "The ID of the file format whose record types to get.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get record type. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordTypeList"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenRecordTypesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RecordTypeConverter",
        "x-operator-class": "com.dmsuite.manager.RecordTypeManager",
        "x-validator-class": "com.dmsuite.web.validators.RecordTypeValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "RECORD_TYPE",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "recordType"
        ],
        "summary": "Create record type",
        "operationId": "createRecordType",
        "parameters": [
          {
            "name": "file_reference_id",
            "in": "query",
            "description": "The reference URI of the uploaded file to be installed. This file should have been uploaded via the /fileUpload endpoint.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The record type to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordType"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordType"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenRecordTypesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RecordTypeConverter",
        "x-operator-class": "com.dmsuite.manager.RecordTypeManager",
        "x-validator-class": "com.dmsuite.web.validators.RecordTypeValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "RECORD_TYPE",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/record-types/{recordTypeId}": {
      "get": {
        "tags": [
          "recordType"
        ],
        "summary": "Get record type by ID",
        "operationId": "getRecordTypeById",
        "parameters": [
          {
            "name": "recordTypeId",
            "in": "path",
            "description": "The ID of the record type to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordType"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenRecordTypesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RecordTypeConverter",
        "x-operator-class": "com.dmsuite.manager.RecordTypeManager",
        "x-validator-class": "com.dmsuite.web.validators.RecordTypeValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "RECORD_TYPE",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "recordType"
        ],
        "summary": "Update record type",
        "operationId": "updateRecordType",
        "parameters": [
          {
            "name": "recordTypeId",
            "in": "path",
            "description": "The ID of the record type ",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The record type to update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordType"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordType"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenRecordTypesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RecordTypeConverter",
        "x-operator-class": "com.dmsuite.manager.RecordTypeManager",
        "x-validator-class": "com.dmsuite.web.validators.RecordTypeValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "EDIT",
        "x-audit-target": "RECORD_TYPE",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "recordType"
        ],
        "summary": "Delete record type by ID",
        "operationId": "deleteRecordType",
        "parameters": [
          {
            "name": "recordTypeId",
            "in": "path",
            "description": "The ID of the record type to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenRecordTypesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RecordTypeConverter",
        "x-operator-class": "com.dmsuite.manager.RecordTypeManager",
        "x-validator-class": "com.dmsuite.web.validators.RecordTypeValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getRecordTypeById",
        "x-audit-target": "RECORD_TYPE",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/record-type-qualifiers": {
      "get": {
        "tags": [
          "recordTypeQualifier"
        ],
        "summary": "Get all record type qualifiers",
        "operationId": "getAllRecordTypeQualifiers",
        "parameters": [
          {
            "name": "record_type_id",
            "in": "query",
            "description": "The ID of the record type whose record type qualifiers to get.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get record type qualifiers. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordTypeQualifierList"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenRecordTypeQualifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RecordTypeQualifierConverter",
        "x-operator-class": "com.dmsuite.manager.RecordTypeQualifierManager",
        "x-validator-class": "com.dmsuite.web.validators.RecordTypeQualifierValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "RECORD_TYPE_QUALIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "recordTypeQualifier"
        ],
        "summary": "Create record type qualifier",
        "operationId": "createRecordTypeQualifier",
        "requestBody": {
          "description": "The record type qualifier to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordTypeQualifier"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordTypeQualifier"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenRecordTypeQualifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RecordTypeQualifierConverter",
        "x-operator-class": "com.dmsuite.manager.RecordTypeQualifierManager",
        "x-validator-class": "com.dmsuite.web.validators.RecordTypeQualifierValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "CREATE",
        "x-audit-target": "RECORD_TYPE_QUALIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/record-type-qualifiers/{recordTypeQualifierId}": {
      "get": {
        "tags": [
          "recordTypeQualifier"
        ],
        "summary": "Get record type qualifier by ID",
        "operationId": "getRecordTypeQualifierById",
        "parameters": [
          {
            "name": "recordTypeQualifierId",
            "in": "path",
            "description": "The ID of the record type qualifier to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordTypeQualifier"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenRecordTypeQualifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RecordTypeQualifierConverter",
        "x-operator-class": "com.dmsuite.manager.RecordTypeQualifierManager",
        "x-validator-class": "com.dmsuite.web.validators.RecordTypeQualifierValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "RECORD_TYPE_QUALIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "recordTypeQualifier"
        ],
        "summary": "Update record type qualifier by ID",
        "operationId": "updateRecordTypeQualifier",
        "parameters": [
          {
            "name": "recordTypeQualifierId",
            "in": "path",
            "description": "The ID of the record type qualifier to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The record type qualifier body to update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordTypeQualifier"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordTypeQualifier"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenRecordTypeQualifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RecordTypeQualifierConverter",
        "x-operator-class": "com.dmsuite.manager.RecordTypeQualifierManager",
        "x-validator-class": "com.dmsuite.web.validators.RecordTypeQualifierValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "RECORD_TYPE_QUALIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "recordTypeQualifier"
        ],
        "summary": "Delete record type qualifier by ID",
        "operationId": "deleteRecordTypeQualifier",
        "parameters": [
          {
            "name": "recordTypeQualifierId",
            "in": "path",
            "description": "The ID of the record type qualifier to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenRecordTypeQualifiersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RecordTypeQualifierConverter",
        "x-operator-class": "com.dmsuite.manager.RecordTypeQualifierManager",
        "x-validator-class": "com.dmsuite.web.validators.RecordTypeQualifierValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getRecordTypeQualifierById",
        "x-audit-target": "RECORD_TYPE_QUALIFIER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/reidentification-jobs": {
      "get": {
        "tags": [
          "reidentificationJob"
        ],
        "summary": "Get all re-identification jobs",
        "operationId": "getAllReidentificationJobs",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get re-identification jobs. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the environment to get all re-identification jobs from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReidentificationJobList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenReidentificationJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ReidentificationJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "REIDENTIFICATION_JOB",
        "x-manager-needs-user": true,
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "reidentificationJob"
        ],
        "summary": "Create re-identification job",
        "operationId": "createReidentificationJob",
        "requestBody": {
          "description": "The re-identification job to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReidentificationJob"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReidentificationJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenReidentificationJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ReidentificationJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "REIDENTIFICATION_JOB",
        "x-manager-needs-user": true,
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/reidentification-jobs/{reidentificationJobId}": {
      "get": {
        "tags": [
          "reidentificationJob"
        ],
        "summary": "Get re-identification job by ID",
        "operationId": "getReidentificationJobById",
        "parameters": [
          {
            "name": "reidentificationJobId",
            "in": "path",
            "description": "The ID of the re-identification job to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReidentificationJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenReidentificationJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ReidentificationJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "REIDENTIFICATION_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "reidentificationJob"
        ],
        "summary": "Update re-identification job by ID",
        "operationId": "updateReidentificationJob",
        "parameters": [
          {
            "name": "reidentificationJobId",
            "in": "path",
            "description": "The ID of the re-identification job to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated re-identification job",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReidentificationJob"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReidentificationJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenReidentificationJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ReidentificationJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "REIDENTIFICATION_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "reidentificationJob"
        ],
        "summary": "Delete re-identification job by ID",
        "operationId": "deleteReidentificationJob",
        "parameters": [
          {
            "name": "reidentificationJobId",
            "in": "path",
            "description": "The ID of the re-identification job to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenReidentificationJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ReidentificationJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getReidentificationJobById",
        "x-audit-target": "REIDENTIFICATION_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/roles": {
      "get": {
        "tags": [
          "role"
        ],
        "summary": "Get all roles",
        "operationId": "getAllRoles",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get roles. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "GenRolesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RoleConverter",
        "x-operator-class": "com.dmsuite.manager.RoleManager",
        "x-validator-class": "com.dmsuite.web.validators.RoleValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "ROLE",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "role"
        ],
        "summary": "Create role",
        "operationId": "createRole",
        "requestBody": {
          "description": "The role to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Role"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Role"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenRolesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RoleConverter",
        "x-operator-class": "com.dmsuite.manager.RoleManager",
        "x-validator-class": "com.dmsuite.web.validators.RoleValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "ROLE",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/roles/{roleId}": {
      "get": {
        "tags": [
          "role"
        ],
        "summary": "Get role by ID",
        "operationId": "getRoleById",
        "parameters": [
          {
            "name": "roleId",
            "in": "path",
            "description": "The ID of the role to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Role"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenRolesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RoleConverter",
        "x-operator-class": "com.dmsuite.manager.RoleManager",
        "x-validator-class": "com.dmsuite.web.validators.RoleValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "ROLE",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "role"
        ],
        "summary": "Update role by ID",
        "operationId": "updateRole",
        "parameters": [
          {
            "name": "roleId",
            "in": "path",
            "description": "The ID of the role to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated role",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Role"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Role"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenRolesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RoleConverter",
        "x-operator-class": "com.dmsuite.manager.RoleManager",
        "x-validator-class": "com.dmsuite.web.validators.RoleValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "ROLE",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "role"
        ],
        "summary": "Delete role by ID",
        "operationId": "deleteRole",
        "parameters": [
          {
            "name": "roleId",
            "in": "path",
            "description": "The ID of the role to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenRolesController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.RoleConverter",
        "x-operator-class": "com.dmsuite.manager.RoleManager",
        "x-validator-class": "com.dmsuite.web.validators.RoleValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getRoleById",
        "x-audit-target": "ROLE",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/ssh-keys": {
      "get": {
        "tags": [
          "sshKey"
        ],
        "summary": "Get all SSH keys",
        "operationId": "getAllSshKeys",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SshKey"
                  }
                }
              }
            }
          }
        },
        "x-swagger-router-controller": "GenSshKeysController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.SshKeyConverter",
        "x-operator-class": "com.dmsuite.common.utils.SshKeyUtil",
        "x-validator-class": "com.dmsuite.web.validators.SshKeyValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "SSH_KEY",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "sshKey"
        ],
        "summary": "Create SSH key",
        "description": "WARNING: The generated curl command is incorrect, so please refer to the Masking API guide for instructions on how to upload files through the API",
        "operationId": "createSshKey",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/SshKeyBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SshKey"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenSshKeysController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.SshKeyConverter",
        "x-operator-class": "com.dmsuite.common.utils.SshKeyUtil",
        "x-validator-class": "com.dmsuite.web.validators.SshKeyValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "SSH_KEY",
        "x-contentType": "multipart/form-data",
        "x-accepts": "application/json"
      }
    },
    "/ssh-keys/{sshKeyName}": {
      "delete": {
        "tags": [
          "sshKey"
        ],
        "summary": "Delete SSH key by name",
        "operationId": "deleteSshKey",
        "parameters": [
          {
            "name": "sshKeyName",
            "in": "path",
            "description": "The name of the SSH key to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenSshKeysController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.SshKeyConverter",
        "x-operator-class": "com.dmsuite.common.utils.SshKeyUtil",
        "x-validator-class": "com.dmsuite.web.validators.SshKeyValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getSshKeyById",
        "x-audit-target": "SSH_KEY",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/support-bundle": {
      "post": {
        "tags": [
          "supportBundle"
        ],
        "summary": "Generates support bundle",
        "description": "Generates support bundle",
        "operationId": "getSupportBundle",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncTask"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerSupportBundleController",
        "x-validator-class": "com.dmsuite.web.validators.SupportBundleValidator",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/syncable-objects": {
      "get": {
        "tags": [
          "sync"
        ],
        "summary": "Get all syncable objects",
        "description": "Get all syncable objects",
        "operationId": "getAllSyncableObjects",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get syncable objects. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "object_type",
            "in": "query",
            "description": "The type of syncable object to filter for",
            "schema": {
              "type": "string",
              "enum": [
                "ALGORITHM_PLUGIN",
                "APPLICATION_SETTINGS",
                "CLASSIFIER",
                "CREDENTIAL_PATH",
                "DATABASE_CONNECTOR",
                "DATABASE_RULESET",
                "DATASET_CONNECTOR",
                "DATASET_RULESET",
                "DATASET_FORMAT",
                "DATA_TABLE",
                "DOMAIN",
                "DRIVER_SUPPORT_PLUGIN",
                "ENVIRONMENT",
                "FILE_CONNECTOR",
                "FILE_FORMAT",
                "FILE_RULESET",
                "GLOBAL_OBJECT",
                "JDBC_DRIVER",
                "KEY",
                "LICENSE_INFO",
                "MASKING_JOB",
                "MOUNT_INFORMATION",
                "PASSWORD_VAULT",
                "PROFILE_JOB",
                "PROFILE_SET",
                "REIDENTIFICATION_JOB",
                "TOKENIZATION_JOB",
                "USER_ALGORITHM"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportObjectMetadataList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SyncableObjectsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ExportObjectMetadataConverter",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/syncable-objects/environments/{environmentId}": {
      "get": {
        "tags": [
          "sync"
        ],
        "summary": "Get syncable object for environment",
        "description": "Get syncable object for environment",
        "operationId": "getSyncableObjectByEnvironmentId",
        "parameters": [
          {
            "name": "environmentId",
            "in": "path",
            "description": "The ID of the environment to retrieve syncable object of",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportObjectMetadataList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SyncableObjectsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.ExportObjectMetadataConverter",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/system-information": {
      "get": {
        "tags": [
          "systemInformation"
        ],
        "summary": "Get system information",
        "operationId": "getSystemInformation",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemInformation"
                }
              }
            }
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerSystemInformationController",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/table-metadata": {
      "get": {
        "tags": [
          "tableMetadata"
        ],
        "summary": "Get all table metadata",
        "operationId": "getAllTableMetadata",
        "parameters": [
          {
            "name": "ruleset_id",
            "in": "query",
            "description": "The ID of the ruleset to get all table metadata from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get table metadata. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "is_masked",
            "in": "query",
            "description": "Get only masked table metadata when this is true, only unmasked column metadata when this is false and leaving this blank will get all tables",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TableMetadataList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenTableMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.TableMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.TableMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.TableMetadataValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "TABLE_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "tableMetadata"
        ],
        "summary": "Create table metadata",
        "operationId": "createTableMetadata",
        "requestBody": {
          "description": "The table metadata to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TableMetadata"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TableMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenTableMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.TableMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.TableMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.TableMetadataValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "TABLE_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/table-metadata/{tableMetadataId}": {
      "get": {
        "tags": [
          "tableMetadata"
        ],
        "summary": "Get table metadata by ID",
        "operationId": "getTableMetadataById",
        "parameters": [
          {
            "name": "tableMetadataId",
            "in": "path",
            "description": "The ID of the table metadata to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TableMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found or not accessible to the requesting user"
          }
        },
        "x-swagger-router-controller": "GenTableMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.TableMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.TableMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.TableMetadataValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "TABLE_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "tableMetadata"
        ],
        "summary": "Update table metadata by ID",
        "operationId": "updateTableMetadata",
        "parameters": [
          {
            "name": "tableMetadataId",
            "in": "path",
            "description": "The ID of the table metadata to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Adding a filter to the table will remove the table's existing custom SQL, and vice versa.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TableMetadata"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TableMetadata"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenTableMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.TableMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.TableMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.TableMetadataValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "TABLE_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "tableMetadata"
        ],
        "summary": "Delete table metadata by ID",
        "operationId": "deleteTableMetadata",
        "parameters": [
          {
            "name": "tableMetadataId",
            "in": "path",
            "description": "The ID of the table metadata to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenTableMetadataController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.TableMetadataConverter",
        "x-operator-class": "com.dmsuite.manager.TableMetadataManager",
        "x-validator-class": "com.dmsuite.web.validators.TableMetadataValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getTableMetadataById",
        "x-audit-target": "TABLE_METADATA",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/table-metadata/{tableMetadataId}/generateCustomSQL": {
      "get": {
        "tags": [
          "tableMetadata"
        ],
        "summary": "Generate customSQL for table",
        "operationId": "generateCustomSQL",
        "parameters": [
          {
            "name": "tableMetadataId",
            "in": "path",
            "description": "The ID of the table for which customSQL has to be generated",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TableMetadataCustomSQL"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerGenerateCustomSQLController",
        "x-disable-code-generation": true,
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/tokenization-jobs": {
      "get": {
        "tags": [
          "tokenizationJob"
        ],
        "summary": "Get all tokenization jobs",
        "operationId": "getAllTokenizationJobs",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get tokenization jobs. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "environment_id",
            "in": "query",
            "description": "The ID of the environment to get all tokenization jobs from",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenizationJobList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenTokenizationJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.TokenizationJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "TOKENIZATION_JOB",
        "x-manager-needs-user": true,
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "tokenizationJob"
        ],
        "summary": "Create tokenization job",
        "operationId": "createTokenizationJob",
        "requestBody": {
          "description": "The tokenization job to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenizationJob"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenizationJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "GenTokenizationJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.TokenizationJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "TOKENIZATION_JOB",
        "x-manager-needs-user": true,
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/tokenization-jobs/{tokenizationJobId}": {
      "get": {
        "tags": [
          "tokenizationJob"
        ],
        "summary": "Get tokenization job by ID",
        "operationId": "getTokenizationJobById",
        "parameters": [
          {
            "name": "tokenizationJobId",
            "in": "path",
            "description": "The ID of the tokenization job to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenizationJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenTokenizationJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.TokenizationJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "ENVIRONMENT",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "tokenizationJob"
        ],
        "summary": "Update tokenization job by ID",
        "operationId": "updateTokenizationJob",
        "parameters": [
          {
            "name": "tokenizationJobId",
            "in": "path",
            "description": "The ID of the tokenization job to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated tokenization job",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenizationJob"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenizationJob"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenTokenizationJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.TokenizationJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "EDIT",
        "x-audit-target": "ENVIRONMENT",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "tokenizationJob"
        ],
        "summary": "Delete tokenization job by ID",
        "operationId": "deleteTokenizationJob",
        "parameters": [
          {
            "name": "tokenizationJobId",
            "in": "path",
            "description": "The ID of the tokenization job to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "GenTokenizationJobsController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.TokenizationJobConverter",
        "x-operator-class": "com.dmsuite.manager.JobManager",
        "x-validator-class": "com.dmsuite.web.validators.JobValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getTokenizationJobById",
        "x-audit-target": "TOKENIZATION_JOB",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/users": {
      "get": {
        "tags": [
          "user"
        ],
        "summary": "Get all users",
        "operationId": "getAllUsers",
        "parameters": [
          {
            "name": "page_number",
            "in": "query",
            "description": "The page number for which to get users. This will default to the first page if excluded",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "The maximum number of objects to return. This will default to the DefaultApiPageSize setting if not provided",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerUsersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.UserConverter",
        "x-operator-class": "com.dmsuite.manager.UserManager",
        "x-validator-class": "com.dmsuite.web.validators.UserValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "GET_ALL",
        "x-audit-ignore-return": true,
        "x-audit-target": "USER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "post": {
        "tags": [
          "user"
        ],
        "summary": "Create user",
        "operationId": "createUser",
        "requestBody": {
          "description": "The user to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerUsersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.UserConverter",
        "x-operator-class": "com.dmsuite.manager.UserManager",
        "x-validator-class": "com.dmsuite.web.validators.UserValidator",
        "x-audit-action-type": "CREATE",
        "x-audit-target": "USER",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      }
    },
    "/users/{userId}": {
      "get": {
        "tags": [
          "user"
        ],
        "summary": "Get user by ID",
        "operationId": "getUserById",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The ID of the user to get",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerUsersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.UserConverter",
        "x-operator-class": "com.dmsuite.manager.UserManager",
        "x-validator-class": "com.dmsuite.web.validators.UserValidator",
        "x-audit-action-type": "GET",
        "x-audit-target": "USER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      },
      "put": {
        "tags": [
          "user"
        ],
        "summary": "Update user by ID",
        "operationId": "updateUserById",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The ID of the user to update",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The updated user",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerUsersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.UserConverter",
        "x-operator-class": "com.dmsuite.manager.UserManager",
        "x-validator-class": "com.dmsuite.web.validators.UserValidator",
        "x-manager-needs-user": true,
        "x-audit-action-type": "EDIT",
        "x-audit-target": "USER",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "user"
        ],
        "summary": "Delete user by ID",
        "operationId": "deleteUserById",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The ID of the user to delete",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized access"
          },
          "403": {
            "description": "Forbidden access"
          },
          "404": {
            "description": "Not found"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerUsersController",
        "x-converter-class": "com.dmsuite.web.swagger.converter.UserConverter",
        "x-operator-class": "com.dmsuite.manager.UserManager",
        "x-validator-class": "com.dmsuite.web.validators.UserValidator",
        "x-audit-action-type": "DELETE",
        "x-audit-getter": "getUserById",
        "x-audit-target": "USER",
        "x-contentType": "application/json",
        "x-accepts": "application/json"
      }
    },
    "/users/forgot-password": {
      "post": {
        "tags": [
          "user"
        ],
        "summary": "Send Reset password mail to the user",
        "operationId": "forgottenPasswordRequest",
        "requestBody": {
          "description": "The username for which password has to be reset",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPassword"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Password reset email sent!"
          },
          "400": {
            "description": "Bad request"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerForgotPasswordController",
        "x-operator-class": "com.dmsuite.manager.ForgottenPasswordManager ",
        "x-validator-class": "com.dmsuite.web.validators.ForgotPasswordValidator",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "ForgotPassword"
      }
    },
    "/users/reset-password": {
      "post": {
        "tags": [
          "user"
        ],
        "summary": "Reset new password for the user",
        "operationId": "resetPasswordRequest",
        "requestBody": {
          "description": "Reset password for user using token received on e-mail",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPassword"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Password successfully updated!"
          },
          "400": {
            "description": "Bad request"
          }
        },
        "x-swagger-router-controller": "com.dmsuite.web.swagger.SwaggerForgotPasswordController",
        "x-validator-class": "com.dmsuite.web.validators.ForgotPasswordValidator",
        "x-contentType": "application/json",
        "x-accepts": "application/json",
        "x-codegen-request-body-name": "ResetPassword"
      }
    }
  },
  "components": {
    "schemas": {
      "Algorithm": {
        "required": [
          "algorithmName",
          "algorithmType"
        ],
        "type": "object",
        "properties": {
          "algorithmName": {
            "maxLength": 201,
            "type": "string",
            "description": "Equivalent to the algorithm name saved by the user through the GUI. For out of the box algo, this represents algorithm code."
          },
          "legacyName": {
            "maxLength": 201,
            "type": "string",
            "description": "This represents algorithm name shown on the UI.",
            "readOnly": true
          },
          "algorithmType": {
            "type": "string",
            "description": "The type of algorithm",
            "enum": [
              "BINARY_LOOKUP",
              "CLEANSING",
              "COMPONENT",
              "CUSTOM_ALGORITHM",
              "DATE",
              "LOOKUP",
              "MAPPING",
              "MINMAX",
              "MISC",
              "REDACTION",
              "SEGMENT",
              "TOKENIZATION"
            ],
            "default": "COMPONENT"
          },
          "canReturnNull": {
            "type": "boolean",
            "description": "Whether or not the algorithm can return null values",
            "readOnly": false
          },
          "createdBy": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the user that created the algorithm",
            "readOnly": true
          },
          "description": {
            "type": "string",
            "description": "The description of the algorithm"
          },
          "maskType": {
            "type": "string",
            "description": "The masking type of the algorithm",
            "readOnly": true
          },
          "isTokenizationSupported": {
            "type": "boolean",
            "description": "Whether or not the algorithm can be used with tokenization and reidentification job",
            "readOnly": true
          },
          "frameworkId": {
            "type": "integer",
            "description": "The algorithm framework id",
            "format": "int64"
          },
          "frameworkName": {
            "type": "string",
            "description": "The algorithm framework name",
            "readOnly": true
          },
          "jsonConfigurable": {
            "type": "boolean",
            "description": "The algorithm is json Configurable or not.",
            "readOnly": true
          },
          "pluginId": {
            "type": "integer",
            "description": "The id, if applicable, of the plugin that supplies this algorithm or the framework this algorithm is built on",
            "format": "int64",
            "readOnly": true
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlgorithmField"
            }
          },
          "algorithmExtension": {
            "type": "object",
            "properties": {}
          },
          "isConfigInvalid": {
            "type": "boolean",
            "description": "Whether or not the configuration in algorithmExtension is invalid",
            "readOnly": true
          }
        },
        "example": {
          "algorithmName": "SimpleMaskingAlgorithm",
          "algorithmType": "COMPONENT",
          "description": "This is a simple algorithm that serves as an example for the API. The frameworkId value may vary by engine.",
          "pluginId": 7,
          "frameworkId": 3,
          "algorithmExtension": {
            "lookupFile": {
              "uri": "delphix-file://upload/f_a0c6c02dac4a4303a26ea5418fb72d5b/example.txt"
            }
          }
        }
      },
      "AlgorithmExtension": {
        "type": "object",
        "discriminator": {
          "propertyName": "algorithmExtension"
        }
      },
      "AlgorithmFramework": {
        "type": "object",
        "properties": {
          "frameworkId": {
            "type": "integer",
            "description": "The id of the algorithm framework installed using Plugin API.",
            "format": "int64",
            "readOnly": true
          },
          "frameworkName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the algorithm framework installed using Plugin API."
          },
          "frameworkType": {
            "type": "string",
            "description": "The type of value this algorithm framework masks.",
            "enum": [
              "BIG_DECIMAL",
              "LOCAL_DATE_TIME",
              "STRING",
              "BYTE_BUFFER",
              "GENERIC_DATA_ROW",
              "ADVANCED_OBJECT"
            ]
          },
          "description": {
            "type": "string",
            "description": "The description of the algorithm framework"
          },
          "plugin": {
            "$ref": "#/components/schemas/PluginBase"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlgorithmField"
            }
          },
          "extensionSchema": {
            "type": "object",
            "properties": {},
            "description": "The JSON schema of algorithmExtension used by this framework"
          }
        },
        "example": {
          "frameworkId": 1,
          "frameworkName": "MinMax",
          "frameworkType": "STRING",
          "plugin": {
            "pluginId": 1,
            "pluginName": "myPlugin",
            "pluginAuthor": "pluginAuthor"
          }
        }
      },
      "AlgorithmFrameworkList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlgorithmFramework"
            }
          }
        }
      },
      "AlgorithmList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Algorithm"
            }
          }
        }
      },
      "AlgorithmIdentifier": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ObjectIdentifier"
          },
          {
            "required": [
              "algorithmName"
            ],
            "type": "object",
            "properties": {
              "algorithmName": {
                "maxLength": 201,
                "type": "string"
              }
            }
          }
        ]
      },
      "AlgorithmValidation": {
        "required": [
          "message",
          "validationSucceeded"
        ],
        "type": "object",
        "properties": {
          "validationSucceeded": {
            "type": "boolean",
            "description": "Whether or not the validation was successful",
            "readOnly": true
          },
          "message": {
            "type": "string",
            "description": "The message providing more details about the validation",
            "readOnly": true
          }
        },
        "example": {
          "validationSucceeded": true,
          "message": "Algorithm validation successful"
        }
      },
      "AlgorithmAssignmentDetail": {
        "required": [
          "assignmentType"
        ],
        "type": "object",
        "properties": {
          "assignmentType": {
            "type": "string",
            "description": "The type of algorithm usage.",
            "readOnly": true,
            "enum": [
              "DATABASE_COLUMN",
              "FILE_FIELD",
              "MAINFRAME_DATASET_FIELD"
            ]
          },
          "environmentName": {
            "type": "string",
            "description": "The environment where the algorithm usage occurs, if any. For file and dataset usage, this will return only one of potentially many environments where the file format referencing the algorithm is applied.",
            "readOnly": true
          },
          "databaseRulesetName": {
            "type": "string",
            "description": "The database ruleset where the algorithm usage occurs, if applicable.",
            "readOnly": true
          },
          "databaseTableName": {
            "type": "string",
            "description": "The database table where the algorithm usage occurs, if applicable.",
            "readOnly": true
          },
          "databaseColumnName": {
            "type": "string",
            "description": "The database column where the algorithm usage occurs, if applicable.",
            "readOnly": true
          },
          "fileRulesetName": {
            "type": "string",
            "description": "The name of the file ruleset where the algorithm usage occurs, if applicable.",
            "readOnly": true
          },
          "fileName": {
            "type": "string",
            "description": "The name of the file where the algorithm usage occurs, if applicable.",
            "readOnly": true
          },
          "fileFormatName": {
            "type": "string",
            "description": "The name of the file format where the algorithm usage occurs, if applicable.",
            "readOnly": true
          },
          "fileRecordTypeName": {
            "type": "string",
            "description": "The name of the file record type where the algorithm usage occurs, if applicable.",
            "readOnly": true
          },
          "fileFieldName": {
            "type": "string",
            "description": "The name of the file field where the algorithm usage occurs, if applicable",
            "readOnly": true
          },
          "mainframeDatasetRulesetName": {
            "type": "string",
            "description": "The name of the mainframe dataset ruleset where the algorithm usage occurs, if applicable.",
            "readOnly": true
          },
          "mainframeDatasetFileName": {
            "type": "string",
            "description": "The name of the mainframe dataset file where the algorithm usage occurs, if applicable.",
            "readOnly": true
          },
          "mainframeDatasetFormatName": {
            "type": "string",
            "description": "The name of the mainframe dataset format where the algorithm usage occurs, if applicable.",
            "readOnly": true
          },
          "mainframeDatasetRecordTypeName": {
            "type": "string",
            "description": "The name of the mainframe dataset record type where the algorithm usage occurs, if applicable.",
            "readOnly": true
          },
          "mainframeDatasetFieldName": {
            "type": "string",
            "description": "The name of t(he mainframe dataset field where the algorithm usage occurs, if applicable.",
            "readOnly": true
          }
        }
      },
      "AlgorithmMigration": {
        "required": [
          "algorithmName",
          "frameworkId"
        ],
        "type": "object",
        "properties": {
          "algorithmName": {
            "maxLength": 201,
            "type": "string",
            "description": "The name of the algorithm that supports migration",
            "readOnly": true
          },
          "frameworkId": {
            "type": "integer",
            "description": "The frameworkId of the framework to which this algorithm can be migrated",
            "format": "int64",
            "readOnly": true
          }
        },
        "example": {
          "algorithmName": "My Mapping Algorithm",
          "frameworkId": 7
        }
      },
      "AlgorithmMigrationList": {
        "type": "object",
        "properties": {
          "availableMigrations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlgorithmMigration"
            }
          }
        }
      },
      "AlgorithmUsageReport": {
        "required": [
          "algorithmName"
        ],
        "type": "object",
        "properties": {
          "algorithmName": {
            "type": "string",
            "description": "The name of the algorithm to which this usage report applies.",
            "readOnly": true
          },
          "algorithmMaskingType": {
            "type": "string",
            "description": "The type of value this algorithm masks. This value is only available for algorithms based on the Algorithm Extensibility Framework.",
            "readOnly": true,
            "enum": [
              "BIG_DECIMAL",
              "LOCAL_DATE_TIME",
              "STRING",
              "BYTE_BUFFER",
              "GENERIC_DATA_ROW",
              "ADVANCED_OBJECT"
            ]
          },
          "columnMetadataIds": {
            "type": "array",
            "description": "A list of the IDs of all columnMetadata objects that reference the algorithm.",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "fileFieldMetadataIds": {
            "type": "array",
            "description": "A list of the IDs of all fileFieldMetadata objects that reference the algorithm.",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "mainframeDatasetFieldMetadataIds": {
            "type": "array",
            "description": "A list of the IDs of all mainframeDatasetFieldMetadata objects that reference the algorithm.",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "environmentIds": {
            "type": "array",
            "description": "A list of the IDs of all environments where the algorithm is used.",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "rulesetIds": {
            "type": "array",
            "description": "A list of the IDs of all rulesets where the algorithm is used.",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "domainNames": {
            "type": "array",
            "description": "A list of the names of all domains that reference the algorithm.",
            "items": {
              "type": "string"
            }
          },
          "algorithmReferences": {
            "type": "array",
            "description": "A list of the names of all other algorithms contain references to this algorithm.",
            "items": {
              "type": "string"
            }
          },
          "assignmentDetails": {
            "type": "array",
            "description": "A extended usage objects that describe the full path to each algorithm usage for all column, file and mainframe dataset assignments.",
            "items": {
              "$ref": "#/components/schemas/AlgorithmAssignmentDetail"
            }
          }
        }
      },
      "Application": {
        "required": [
          "applicationName"
        ],
        "type": "object",
        "properties": {
          "applicationId": {
            "type": "integer",
            "description": "The ID of the application. This will be generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "applicationName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of this Application. Note that it must be unique."
          }
        },
        "example": {
          "applicationName": "App123"
        }
      },
      "ApplicationList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Application"
            }
          }
        }
      },
      "ApplicationSettings": {
        "required": [
          "settingValue"
        ],
        "type": "object",
        "properties": {
          "settingId": {
            "type": "integer",
            "description": "The ID of the application setting",
            "format": "int32",
            "readOnly": true
          },
          "settingGroup": {
            "maxLength": 255,
            "type": "string",
            "description": "Application setting group",
            "readOnly": true
          },
          "settingName": {
            "maxLength": 255,
            "type": "string",
            "description": "Application setting available per group",
            "readOnly": true
          },
          "settingValue": {
            "maxLength": 255,
            "type": "string",
            "description": "Value for an application setting",
            "x-is-sensitive": true
          },
          "valueType": {
            "type": "string",
            "description": "Type of the value",
            "readOnly": true,
            "enum": [
              "string",
              "boolean",
              "number",
              "regular-expression"
            ]
          }
        },
        "example": {
          "settingValue": "true"
        }
      },
      "ApplicationSettingsList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationSettings"
            }
          }
        }
      },
      "AsyncTask": {
        "type": "object",
        "properties": {
          "asyncTaskId": {
            "type": "integer",
            "description": "The ID of the AsyncTask. This field will be generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "operation": {
            "type": "string",
            "description": "The type of operation that the AsyncTask is performing.",
            "readOnly": true,
            "enum": [
              "ADD_MAPPINGS",
              "ALGORITHM_CREATE",
              "ALGORITHM_MIGRATE",
              "ALGORITHM_UPDATE",
              "DATAFILE_BULK_UPDATE",
              "ENCRYPTION_KEY_CREATE",
              "EXPORT",
              "EXPORT_CLASSIFIER_FILES",
              "EXPORT_MAPPINGS",
              "EXPORT_PROFILE_SET",
              "EXPORT_SL_VALUES",
              "GENERATE_EXECUTION_INVENTORY",
              "IMPORT",
              "RULESET_REFRESH",
              "TABLE_BULK_UPDATE",
              "MAINFRAME_DATASET_BULK_UPDATE",
              "SUPPORT_BUNDLE_GENERATE"
            ]
          },
          "reference": {
            "maxLength": 255,
            "type": "string",
            "description": "The reference for the AsyncTask. An example of a reference is the ruleset ID for a RULESET_REFRESH operation.",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "The status of the AsyncTask in regard to its completion.",
            "readOnly": true,
            "enum": [
              "CANCELLED",
              "FAILED",
              "RUNNING",
              "SUCCEEDED",
              "WAITING"
            ]
          },
          "startTime": {
            "type": "string",
            "description": "The date and time that this AsyncTask was started.",
            "format": "date-time",
            "readOnly": true
          },
          "endTime": {
            "type": "string",
            "description": "The date and time that this AsyncTask completed.",
            "format": "date-time",
            "readOnly": true
          },
          "cancellable": {
            "type": "boolean",
            "description": "True if the AsyncTask can be cancelled, false otherwise.",
            "readOnly": true
          },
          "exceptionDetail": {
            "type": "string",
            "description": "The details associated with the Java exception that caused this async task to fail, if applicable.",
            "readOnly": true
          }
        },
        "example": {
          "asyncTaskId": 1,
          "operation": "RULESET_REFRESH",
          "reference": 13,
          "status": "RUNNING",
          "cancellable": false
        }
      },
      "AsyncTaskList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AsyncTask"
            }
          }
        }
      },
      "AuditLog": {
        "type": "object",
        "properties": {
          "auditId": {
            "type": "integer",
            "description": "The ID of the Audit Log. This field will be generated by the Masking Engine.",
            "format": "int32"
          },
          "userName": {
            "maxLength": 1000,
            "type": "string",
            "description": "The name for the user that took the action for this entry."
          },
          "activityDescription": {
            "maxLength": 1000,
            "type": "string",
            "description": "A description of the action that occurred for this Audit Log entry. This will usually include the user friendly names of the involved objects."
          },
          "activityTime": {
            "type": "string",
            "description": "The date and time that the action for this Audit Log entry occurred.",
            "format": "date-time"
          },
          "actionType": {
            "type": "string",
            "description": "The type of action that occurred for this Audit Log entry.",
            "enum": [
              "CANCEL",
              "CREATE",
              "CONNECT",
              "CONFIG_INSTALL",
              "DELETE",
              "DISCONNECT",
              "EDIT",
              "EXPORT",
              "FORGOT_PASSWORD",
              "GET",
              "GET_ALL",
              "IMPORT",
              "LOCK",
              "DISABLE",
              "LOGIN",
              "LOGOUT",
              "RESET_PASSWORD",
              "RUN",
              "TEST",
              "UNLOCK"
            ]
          },
          "target": {
            "type": "string",
            "description": "The type object or operation that the action occurred on for this Audit Log entry.",
            "enum": [
              "ALGORITHM",
              "ANALYTIC",
              "APPLICATION",
              "APPLICATION_LOG",
              "APPLICATION_SETTING",
              "ASYNC_TASK",
              "AUDIT_LOG",
              "BILLING_PERIOD",
              "BILLING_REPORT",
              "BILLING_USAGE",
              "CLASSIFIER",
              "COLUMN_METADATA",
              "CREDENTIAL_PATH",
              "DATABASE_CONNECTOR",
              "DATABASE_RULESET",
              "DATABASE_USAGE",
              "DATA_TABLE",
              "DEBUG_BREAKPOINT",
              "DOMAIN",
              "ENCRYPTION_KEY",
              "ENVIRONMENT",
              "EXECUTION",
              "EXECUTION_COMPONENT_LOG",
              "EXECUTION_EVENT",
              "EXECUTION_LOG",
              "EXECUTION_REPORT",
              "FEATURE_FLAG",
              "FILE_CONNECTOR",
              "FILE_DOWNLOAD",
              "FILE_FIELD_METADATA",
              "FILE_FORMAT",
              "FILE_METADATA",
              "FILE_RULESET",
              "FILE_UPLOAD",
              "INSTALLATION",
              "INVENTORY_APPROVAL",
              "JDBC_DRIVER",
              "JOB_TASK",
              "JOB_UTILIZATION_REPORT",
              "KNOWLEDGE_BASE_INFO",
              "LDAP",
              "LICENSE",
              "MAINFRAME_DATASET_CONNECTOR",
              "MAINFRAME_DATASET_FIELD_METADATA",
              "MAINFRAME_DATASET_FORMAT",
              "MAINFRAME_DATASET_METADATA",
              "MAINFRAME_DATASET_RECORD_TYPE",
              "MAINFRAME_DATASET_RULESET",
              "MASKING_JOB",
              "MONITOR_JOBS_INFORMATION",
              "MONITOR_TASK",
              "MOUNT_FILESYSTEM",
              "NON_CONFORMING_DATA_SAMPLE",
              "OAUTH2",
              "PASSWORD_VAULT",
              "PLUGIN",
              "PROFILE_EXPRESSION",
              "PROFILE_TYPE_EXPRESSION",
              "PROFILE_JOB",
              "PROFILE_RESULT",
              "PROFILE_SET",
              "RECORD_TYPE",
              "RECORD_TYPE_QUALIFIER",
              "REIDENTIFICATION_JOB",
              "ROLE",
              "SSH_KEY",
              "SSO",
              "SUPPORT_BUNDLE",
              "SYNCABLE_OBJECT",
              "SYSTEM_INFORMATION",
              "TABLE_METADATA",
              "TASK",
              "TOKENIZATION_JOB",
              "UNIFIED_AUTH",
              "USER"
            ]
          },
          "status": {
            "type": "string",
            "description": "The status of the action that occurred for this Audit Log entry. This can change over time as ATTEMPTED actions are completed.",
            "enum": [
              "ATTEMPTED",
              "FAILED",
              "SUCCEEDED"
            ]
          },
          "ipAddress": {
            "maxLength": 45,
            "type": "string",
            "description": "The IP address of the user who performed the action for this Audit Log entry."
          }
        },
        "example": {
          "userName": "maskingUser",
          "activityDescription": "Created Database Connector 'con' in Environment 'env'.",
          "activityTime": "2018-11-06T04:14:46.929+0000",
          "actionType": "CREATE",
          "target": "DATABASE_CONNECTOR",
          "status": "SUCCEEDED"
        }
      },
      "AuditLogExport": {
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "description": "Name of the file"
          },
          "encodedData": {
            "type": "string",
            "description": "Base64 encoded string of PDF"
          }
        },
        "example": {
          "fileName": "Name of the file",
          "encodedData": "Audit log PDF exported in base64 content"
        }
      },
      "AuditLogList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuditLog"
            }
          }
        }
      },
      "BinaryLookupExtension": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AlgorithmExtension"
          },
          {
            "type": "object",
            "properties": {
              "fileReferenceIds": {
                "type": "array",
                "description": "A list of file reference URI values returned from the endpoint for uploading files to the Masking Engine.",
                "items": {
                  "type": "string"
                }
              },
              "latestKeyResetTime": {
                "type": "string",
                "description": "The last time the algorithm's key was randomized. This changes the masked results of the algorithm.",
                "format": "date-time",
                "readOnly": true
              }
            }
          }
        ]
      },
      "BillingPeriod": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID of the predefined billing period.",
            "format": "int32",
            "readOnly": true
          },
          "displayName": {
            "maxLength": 20,
            "type": "string",
            "description": "The date and time that this execution completed.",
            "readOnly": true
          },
          "startDate": {
            "type": "string",
            "description": "The start date in yyyy-MM-dd format.",
            "format": "date-time",
            "readOnly": true
          },
          "endDate": {
            "type": "string",
            "description": "The end date in yyyy-MM-dd format.",
            "format": "date-time",
            "readOnly": true
          }
        },
        "example": {
          "id": "1",
          "displayName": "2022 Oct - Dec (Q4)",
          "startDate": "2023-10-01",
          "endDate": "2023-12-31"
        }
      },
      "BillingPeriodList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BillingPeriod"
            }
          }
        },
        "example": {
          "_pageInfo": {
            "numberOnPage": 1,
            "total": 1
          },
          "responseList": [
            {
              "id": "1",
              "displayName": "2022 Oct - Dec (Q4)",
              "startDate": "2023-10-01",
              "endDate": "2023-12-31"
            }
          ]
        }
      },
      "ReportFile": {
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "description": "Name of the file"
          },
          "reportData": {
            "type": "string",
            "description": "The report pdf content as Base64 encoded string"
          }
        },
        "example": {
          "fileName": "sample.pdf",
          "encodedData": "The report file name"
        }
      },
      "BillingUsage": {
        "type": "object",
        "properties": {
          "databaseIdentifier": {
            "type": "string",
            "description": "The value of database identifier for uniquely identifying a database. The database properties will be colon separated."
          },
          "name": {
            "type": "string",
            "description": "Name of the database."
          },
          "size": {
            "type": "number",
            "description": "Size of the database in bytes."
          },
          "dbType": {
            "type": "string",
            "description": "Type of the database."
          },
          "billingPeriod": {
            "type": "string",
            "description": "The display value of billing period."
          },
          "failureReason": {
            "type": "string",
            "description": "Reason in case unable to calculate database size."
          }
        },
        "example": {
          "databaseIdentifier": "testHost:testServiceName:testDbName",
          "name": "testDbName",
          "size": 2695200768,
          "dbType": "oracle",
          "billingPeriod": "2022 Oct - Dec (Q4)",
          "failureReason": ""
        }
      },
      "BillingUsageList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "totalSize": {
            "type": "number",
            "description": "Total size of the database from list of all database usage. It will be in bytes"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BillingUsage"
            }
          }
        },
        "example": {
          "_pageInfo": {
            "numberOnPage": 1,
            "total": 1
          },
          "totalSize": 2695200768,
          "responseList": [
            {
              "databaseIdentifier": "testHost:testServiceName:testDbName",
              "name": "testDbName",
              "size": 2695200768,
              "dbType": "oracle",
              "billingPeriod": "2022 Oct - Dec (Q4)",
              "failureReason": ""
            }
          ]
        }
      },
      "BrandingImageFile": {
        "type": "object",
        "properties": {
          "fileData": {
            "type": "string",
            "description": "The base64 representation of the file contents."
          },
          "fileName": {
            "type": "string",
            "description": "The name of the file."
          },
          "fileType": {
            "type": "string",
            "description": "The type of the file."
          }
        }
      },
      "CallbackPayload": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "description": "The date and time that this notification was generated.",
            "format": "date-time"
          },
          "eventName": {
            "$ref": "#/components/schemas/EventNameEnum"
          },
          "context": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "example": {
          "timestamp": "2018-01-01T00:00:00.000Z",
          "eventName": "JOB_CREATED",
          "context": {
            "jobId": "456",
            "jobName": "My Job",
            "environmentId": "123"
          }
        }
      },
      "CallbackSubscription": {
        "type": "object",
        "properties": {
          "eventList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventNameEnum"
            }
          },
          "environmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "isAdmin": {
            "type": "boolean",
            "description": "Indicates if the subscription is for an admin user",
            "readOnly": true
          }
        },
        "example": {
          "eventList": [
            "JOB_CREATED",
            "JOB_UPDATED",
            "JOB_DELETED"
          ],
          "environmentIds": [
            1,
            2,
            3
          ]
        }
      },
      "Classifier": {
        "required": [
          "classifierName"
        ],
        "type": "object",
        "properties": {
          "classifierId": {
            "type": "integer",
            "description": "The ID of the classifier. This will be generated by the Masking Engine.",
            "format": "int64",
            "readOnly": true
          },
          "classifierName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of this classifier. Note that it must be unique."
          },
          "description": {
            "type": "string",
            "description": "The description of the classifier."
          },
          "frameworkId": {
            "type": "integer",
            "description": "The id of the classifier framework.",
            "format": "int64"
          },
          "domainName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the domain that will be assigned to the column/field when a profile expression match is found during the execution of a profile job."
          },
          "createdBy": {
            "maxLength": 255,
            "type": "string",
            "description": "The user that created the profile expression. This field is auto-generated by the Masking Engine.",
            "readOnly": true
          },
          "classifierConfiguration": {
            "type": "object",
            "properties": {}
          }
        },
        "example": {
          "classifierName": "MyClassifier",
          "description": "Detects my sensitive data",
          "frameworkId": 1,
          "domainName": "MyDomain",
          "classifierConfiguration": {
            "dataPatterns": [
              {
                "regex": "[A-Za-z0-9]*",
                "matchStrength": 0.1
              }
            ]
          }
        }
      },
      "ClassifierList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Classifier"
            }
          }
        }
      },
      "ClassifierFramework": {
        "type": "object",
        "properties": {
          "frameworkId": {
            "type": "integer",
            "description": "The id of the classifier framework installed using Plugin API.",
            "format": "int64",
            "readOnly": true
          },
          "frameworkName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the classifier framework installed using Plugin API."
          },
          "description": {
            "type": "string",
            "description": "The description of the classifier framework"
          },
          "classifierSchema": {
            "type": "object",
            "properties": {},
            "description": "The JSON schema of classifierExtension used by this framework"
          }
        },
        "example": {
          "frameworkId": 1,
          "frameworkName": "REGEX",
          "description": "This is a regex classifier framework."
        }
      },
      "ClassifierFrameworkList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClassifierFramework"
            }
          }
        }
      },
      "ClassifierConfig": {
        "type": "object",
        "discriminator": {
          "propertyName": "classifierConfig"
        }
      },
      "ClassifierCopy": {
        "required": [
          "newClassifierName"
        ],
        "type": "object",
        "properties": {
          "newClassifierName": {
            "maxLength": 201,
            "type": "string",
            "description": "The name of the classifier. This must be unique."
          }
        },
        "example": {
          "newClassifierName": "NewClassifier"
        }
      },
      "ColumnMetadata": {
        "required": [
          "isProfilerWritable"
        ],
        "type": "object",
        "properties": {
          "columnMetadataId": {
            "type": "integer",
            "description": "The ID number of the column metadata. This field is auto-generated by the Masking Engine.",
            "format": "int64",
            "readOnly": true
          },
          "columnName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the column, as determined by the underlying table.",
            "readOnly": true
          },
          "tableMetadataId": {
            "type": "integer",
            "description": "The ID number of the table metadata that this column is a part of. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "algorithmName": {
            "maxLength": 500,
            "type": "string",
            "description": "The name of the algorithm assigned to this column. Columns that are unmasked should have this property unset, in addition to having 'domainName' unset. If this field is set, then the 'domainName' must also be specified."
          },
          "algorithmFieldId": {
            "type": "integer",
            "description": "The ID number of the algorithm field that is associated with this column.",
            "format": "int64"
          },
          "algorithmGroupNo": {
            "type": "integer",
            "description": "The group number of algorithm to identify a set of columns associated with one instance of algorithm.",
            "format": "int64"
          },
          "domainName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the domain assigned to this column. Columns that are left unmasked should have this property unset. If the 'domainName' is set, but the 'algorithmName' is unset, then the default algorithm corresponding to the 'domainName' will be used."
          },
          "dataType": {
            "maxLength": 50,
            "type": "string",
            "description": "The data type of this column.",
            "readOnly": true
          },
          "dateFormat": {
            "maxLength": 50,
            "type": "string",
            "description": "The date format of the date assigned to this column."
          },
          "columnLength": {
            "type": "integer",
            "description": "The length of the column, in number of characters, as determined by the underlying table.",
            "format": "int32",
            "readOnly": true
          },
          "isMasked": {
            "type": "boolean",
            "description": "This field indicates whether or not a column is being masked. This field is assigned by the Masking Engine to true or false based on whether the column is assigned an algorithm and domain.",
            "readOnly": true
          },
          "isProfilerWritable": {
            "type": "boolean",
            "description": "This field indicates whether or not a column's fields (e.g. algorithm or domain assignment) may be modified during the execution of a profile job when there is a profiling match."
          },
          "isPrimaryKey": {
            "type": "boolean",
            "description": "This field indicates whether or not a column is a primary key. This field is determined by the Masking Engine.",
            "readOnly": true
          },
          "isIdentity": {
            "type": "boolean",
            "description": "This field indicates whether or not a column is an identity column. An identity column differs from a primary key in that its values are managed by the database server and usually cannot be modified. In many cases an identity column is used as a primary key; however, this is not always the case. This field is determined by the Masking Engine.",
            "readOnly": true
          },
          "isIndex": {
            "type": "boolean",
            "description": "This field indicates whether or not a column is an index. This field is determined by the Masking Engine.",
            "readOnly": true
          },
          "isForeignKey": {
            "type": "boolean",
            "description": "This field indicates whether or not a column is a foreign key. This field is determined by the Masking Engine.",
            "readOnly": true
          },
          "nullable": {
            "type": "string",
            "description": "This field indicates whether or not a column is nullable. This field is determined by the Masking Engine."
          },
          "documentStoreType": {
            "type": "string",
            "description": "This field indicates the type of document stored in the column. Required in case where fileFormatId is provided. Accepted values: ['JSON','XML']"
          },
          "fileFormatId": {
            "type": "integer",
            "description": "The ID number of the file format. Required in case where documentStoreType is provided.",
            "format": "int32"
          },
          "notes": {
            "maxLength": 500,
            "type": "string",
            "description": "This field is used to store additional information about the column."
          },
          "domainAssignedBy": {
            "type": "string",
            "description": "This field indicates who assigned the domain to the column.",
            "readOnly": true
          }
        },
        "example": {
          "algorithmName": "FirstNameLookup",
          "domainName": "FIRST_NAME",
          "isProfilerWritable": false
        }
      },
      "ColumnMetadataList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ColumnMetadata"
            }
          }
        }
      },
      "ConfigurationInstall": {
        "required": [
          "fileReferenceId"
        ],
        "type": "object",
        "properties": {
          "fileReferenceId": {
            "type": "string",
            "description": "The reference URI of the uploaded file to be installed. This file should have been uploaded via the /fileUpload endpoint."
          },
          "requiresRestart": {
            "type": "boolean",
            "description": "True if the Masking Engine must be restarted for the installation to take effect, false otherwise.",
            "readOnly": true
          }
        },
        "example": {
          "fileReferenceId": "delphix-file://upload/f_08bb469a2ddc407bb97a31e96ed0a76a/foo.bar"
        }
      },
      "ConnectionInfo": {
        "required": [
          "connectionMode"
        ],
        "type": "object",
        "properties": {
          "connectionMode": {
            "type": "string",
            "description": "This field denotes which connection mode the connector will use to connect to the underlying files.",
            "enum": [
              "FTP",
              "MOUNT",
              "SFTP",
              "FTPS",
              "AWS_S3",
              "S3_COMPATIBLE",
              "AZURE_BLOB_STORAGE"
            ]
          },
          "isMvsStorage": {
            "type": "boolean",
            "description": "This field denotes the type of storage is MVS or not. It's readonly(not persisted) and also only applicable for mainframe connectors."
          },
          "path": {
            "maxLength": 255,
            "type": "string",
            "description": "This field applies to all connection modes, and it is the file system path to the desired files."
          },
          "mountId": {
            "type": "integer",
            "description": "This field only applies to the Filesystem Mount Point connection mode, and it is the id of the mount containing the desired files.",
            "format": "int32"
          },
          "host": {
            "maxLength": 255,
            "type": "string",
            "description": "This field is the host address belonging to the FTP/SFTP server."
          },
          "loginName": {
            "maxLength": 255,
            "type": "string",
            "description": "This field is the login name to be used to authenticate with the FTP/SFTP server.",
            "x-is-sensitive": true
          },
          "password": {
            "maxLength": 255,
            "type": "string",
            "description": "This field is the password to be used to authenticate with the FTP/SFTP server. Note that for SFTP authentication, only one of the 'password' or 'sshKey' fields should be provided.",
            "x-is-sensitive": true
          },
          "port": {
            "type": "integer",
            "description": "This field is the port number on the host address that the FTP/SFTP server is listening to.",
            "format": "int32"
          },
          "sshKey": {
            "maxLength": 255,
            "type": "string",
            "description": "This field only applies to the SFTP connection mode, and it is a reference to the public SSH key to be used as an alternative means of authentication to the SFTP server. The public SSH key must already exist on the Masking Engine under the directory '/var/delphix/dmsuite/resources/SSHKeys'. Note that only one of the 'password' or 'sshKey' fields should be provided."
          },
          "userDirIsRoot": {
            "type": "boolean",
            "description": "This field only applies to the SFTP connection mode. A value of true indicates that path is relative to the SFTP server defined user directory, while false means it is an absolute path. Setting this value incorrectly may cause the SFTP connection to fail.",
            "default": false
          },
          "awsBucketName": {
            "maxLength": 255,
            "type": "string",
            "description": "This field is the bucket name for aws s3."
          },
          "awsRegion": {
            "maxLength": 100,
            "type": "string",
            "description": "This field is the region of aws s3 bucket."
          },
          "awsAccessKey": {
            "maxLength": 255,
            "type": "string",
            "description": "This field is the access key to access the s3 object."
          },
          "awsSecretKey": {
            "maxLength": 255,
            "type": "string",
            "description": "This field is the secret key to access the s3 object."
          },
          "awsAuthType": {
            "maxLength": 50,
            "type": "string",
            "description": "This field is the type of s3 authentication."
          },
          "prefix": {
            "maxLength": 1024,
            "type": "string",
            "description": "This field is the prefix for filteration."
          },
          "delimiter": {
            "maxLength": 1024,
            "type": "string",
            "description": "This field is the delimiter for filteration."
          },
          "s3CompatibleDetails": {
            "$ref": "#/components/schemas/S3CompatibleDetails"
          },
          "azureBlobStorageDetails": {
            "$ref": "#/components/schemas/AzureBlobStorageDetails"
          },
          "passwordVaultAuth": {
            "type": "boolean",
            "description": "Whether the connector uses password vault for authentication or not. This is a read-only field, determined by if credentialPathId is provided.",
            "readOnly": true
          },
          "credentialPathId": {
            "type": "integer",
            "description": "The ID of the credential path to use for this connector. Used to retrieve credentials from a password vault.",
            "format": "int32"
          }
        }
      },
      "ConnectionProperties": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the property."
          },
          "value": {
            "type": "string",
            "description": "The value of the property."
          },
          "description": {
            "type": "string",
            "description": "The description of the property."
          },
          "edited": {
            "type": "boolean",
            "description": "Whether this property was set through a connection properties file.",
            "default": false
          }
        }
      },
      "CredentialPath": {
        "type": "object",
        "properties": {
          "credentialPathId": {
            "type": "integer",
            "description": "The ID number of the credential path. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "credentialPathName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the credential path."
          },
          "description": {
            "maxLength": 1024,
            "type": "string",
            "description": "The description of the credential path."
          },
          "passwordVaultId": {
            "type": "integer",
            "description": "The ID of the password vault which contains this credential path.",
            "format": "int32"
          },
          "credentialParameters": {
            "type": "object",
            "properties": {},
            "description": "The parameters for this credential path.",
            "x-is-sensitive": true
          }
        },
        "example": {
          "credentialPathName": "ExampleCredentialPath",
          "description": "This CredentialPath example has HashiCorp credentialParameters. Example credentialParameter keys for other password vaults: CyberArk (queryString), GCP (versionId, projectId, usernameKey, passwordKey)",
          "passwordVaultId": 5,
          "credentialParameters": {
            "engine": "my-secrets",
            "path": "hello",
            "usernameKey": "user",
            "passwordKey": "pwd"
          }
        }
      },
      "CredentialPathList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CredentialPath"
            }
          }
        }
      },
      "DatabaseConnector": {
        "type": "object",
        "properties": {
          "databaseConnectorId": {
            "type": "integer",
            "description": "The ID number of the connector. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "connectorName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the connector."
          },
          "databaseType": {
            "type": "string",
            "description": "The type of database the connector will connect to.",
            "enum": [
              "AURORA_POSTGRES",
              "DB2",
              "DB2_ISERIES",
              "DB2_MAINFRAME",
              "EXTENDED",
              "GENERIC",
              "MARIADB",
              "MSSQL",
              "MYSQL",
              "ORACLE",
              "POSTGRES",
              "RDS_POSTGRES",
              "SYBASE",
              "YUGABYTEDB_POSTGRES",
              "COCKROACHDB_POSTGRES"
            ]
          },
          "environmentId": {
            "type": "integer",
            "description": "The ID of the environment under which to create the connector. Once the connector is created, this value cannot be changed.",
            "format": "int32"
          },
          "customDriverName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the custom driver to use. Only used for database type 'GENERIC'."
          },
          "databaseName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the database to connect to. This field is not valid for database types 'ORACLE' and 'GENERIC'."
          },
          "host": {
            "maxLength": 500,
            "type": "string",
            "description": "The host name or IP address where the database is located."
          },
          "instanceName": {
            "maxLength": 50,
            "type": "string",
            "description": "The name of the database instance. Only used for database type 'MSSQL'."
          },
          "jdbc": {
            "type": "string",
            "description": "The jdbc connection string. This can be used as an alternative to specifying a 'host', 'databaseName', 'SID', and 'port'. This value is only applicable when using database types 'ORACLE', 'MSSQL', 'SYBASE', 'EXTENDED' and 'GENERIC'.",
            "x-is-sensitive": true
          },
          "password": {
            "maxLength": 4096,
            "type": "string",
            "description": "The password required to access the database. NOTE: For updates, this field does not have to be set. If no password is provided on an update, then the current password will persist.",
            "x-is-sensitive": true
          },
          "port": {
            "maximum": 65535,
            "minimum": 0,
            "type": "integer",
            "description": "The port to use for connecting to the database. This field is not valid for the database type 'GENERIC'."
          },
          "schemaName": {
            "maxLength": 255,
            "type": "string",
            "description": "The schema name on the database. Note that this field should be uppercase for database type 'ORACLE'. Also note that this field is not relevant for database type 'MYSQL'."
          },
          "sid": {
            "maxLength": 255,
            "type": "string",
            "description": "The SID of the Oracle Instance to connect to. This field is only valid for database type 'ORACLE'."
          },
          "username": {
            "maxLength": 255,
            "type": "string",
            "description": "The username required to access the database. Note that this field should be uppercase for database type 'ORACLE'.",
            "x-is-sensitive": true
          },
          "kerberosAuth": {
            "type": "boolean",
            "description": "Whether to use kerberos to authenticate database connections. When kerberosAuth is enabled, the username field is treated as the kerberos principal. Kerberos must be enabled on the appliance",
            "default": false
          },
          "servicePrincipal": {
            "maxLength": 256,
            "type": "string",
            "description": "The service principal used to access the database. This property is exclusive to Sybase connectors using Kerberos."
          },
          "jdbcDriverId": {
            "type": "integer",
            "description": "The ID of the JDBC driver to use for this connector. This is exclusively used for extended connectors.",
            "format": "int32"
          },
          "enableLogger": {
            "type": "boolean",
            "description": "Whether to enable the logger. This is exclusively used for extended connectors."
          },
          "fileReferenceId": {
            "type": "string",
            "description": "The reference to the uploaded connection property file."
          },
          "passwordVaultAuth": {
            "type": "boolean",
            "description": "Whether the connector uses password vault for authentication or not. This is a read-only field, determined by if credentialPathId is provided.",
            "readOnly": true
          },
          "credentialPathId": {
            "type": "integer",
            "description": "The ID of the credential path to use for this connector. Used to retrieve database login credentials from a password vault.",
            "format": "int32"
          },
          "authPresent": {
            "type": "string",
            "description": "Denotes whether authentication is present or not for this connector, UI only field",
            "readOnly": true
          }
        },
        "example": {
          "connectorName": "Con123",
          "databaseType": "ORACLE",
          "environmentId": 1,
          "host": "europa.delphix.com",
          "password": "Pass_123",
          "port": 1521,
          "schemaName": "MASKER",
          "sid": "TEST",
          "username": "MASKER"
        }
      },
      "DatabaseConnectorList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DatabaseConnector"
            }
          }
        }
      },
      "DatabaseMaskingOptions": {
        "type": "object",
        "properties": {
          "batchUpdate": {
            "type": "boolean",
            "description": "This field determines whether the database load phase to output the masked data will be performed in batches. The size of the batches is determined by the field 'commitSize'. This option is recommended because it typically improves the performance of the masking job.",
            "default": true
          },
          "commitSize": {
            "minimum": 1,
            "type": "integer",
            "description": "This field corresponds to the size of the database commits when performing batch updates.",
            "format": "int32"
          },
          "disableConstraints": {
            "type": "boolean",
            "description": "This field determines whether the database constraints on the tables to-be-masked will be temporarily disabled/dropped prior to when the masking phase starts, and then reenabled/recreated after the masking phase finishes. Due to the large amount of data mutation that is inherent to the masking phase, this option can improve performance by preventing the need to constantly reevaluate constraints while performing the data masking. Further, this option is often necessary for masking columns that are part of foreign key constraints because those constraints can be temporarily violated during the masking phase.",
            "default": false
          },
          "dropIndexes": {
            "type": "boolean",
            "description": "This field determines whether the database indexes on the tables to-be-masked will be temporarily disabled/dropped prior to when the masking phase starts, and then reenabled/recreated after the masking phase finishes. Due to the large amount of data mutation that is inherent to the masking phase, this option can improve performance by preventing the need to constantly re-index the tables while performing the data masking.",
            "default": false
          },
          "disableTriggers": {
            "type": "boolean",
            "description": "This field determines whether the database triggers on the tables to-be-masked will be temporarily disabled/dropped prior to when the masking phase starts, and then reenabled/recreated after the masking phase finishes. Due to the large amount of data mutation that is inherent to the masking phase, this option can improve performance by preventing the constant execution of triggers while performing the data masking.",
            "default": false
          },
          "numOutputThreadsPerStream": {
            "minimum": 1,
            "type": "integer",
            "description": "This field controls the amount of parallelism, per input stream, that the masking job uses to load back the masked data. For instance, specifying 4 output threads per stream with 5 input streams results in a total of 20 output threads for the whole job. The higher the value of this field, the more potential parallelism there will be in the job, but the masking job will consume more memory. WARNING: when masking a database and specifying more than 1 output thread per stream, there is the potential for a deadlock that could stall the masking job indefinitely.",
            "format": "int32",
            "default": 1
          },
          "truncateTables": {
            "type": "boolean",
            "description": "This field only applies when masking a database OnTheFly, and it determines whether the target database tables are truncated prior to loading the masked data into the target database (after the masking phase is done).",
            "default": false
          },
          "prescript": {
            "$ref": "#/components/schemas/MaskingJobScript"
          },
          "postscript": {
            "$ref": "#/components/schemas/MaskingJobScript"
          }
        }
      },
      "DatabaseRuleset": {
        "required": [
          "databaseConnectorId",
          "rulesetName"
        ],
        "type": "object",
        "properties": {
          "databaseRulesetId": {
            "type": "integer",
            "description": "The ID of the database ruleset. This field is set by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "rulesetName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the ruleset. This must be unique within an environment."
          },
          "databaseConnectorId": {
            "type": "integer",
            "description": "The ID of the database connector that this ruleset corresponds to. Note that the ruleset will be created on the same environment as its connector.",
            "format": "int32"
          },
          "refreshDropsTables": {
            "type": "boolean",
            "description": "This field applies to the case where a Table Metadata exists in the Masking Engine, but the corresponding table no longer exists in the external database (e.g. if the table has been deleted or renamed). In that event, True will cause the refresh operation to delete the invalid Table Metadata, whereas False will fail the refresh instead.",
            "default": false
          }
        },
        "example": {
          "rulesetName": "Rule123",
          "databaseConnectorId": 1
        }
      },
      "DatabaseRulesetList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DatabaseRuleset"
            }
          }
        }
      },
      "DatabaseRulesetCopy": {
        "required": [
          "newRulesetName"
        ],
        "type": "object",
        "properties": {
          "newRulesetName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the ruleset. This must be unique within an environment."
          }
        },
        "example": {
          "newRulesetName": "Rule123"
        }
      },
      "DatabaseRulesetCSVExport": {
        "required": [
          "exportFileName"
        ],
        "type": "object",
        "properties": {
          "exportFileName": {
            "maxLength": 50,
            "type": "string",
            "description": "The name of the exported ruleset CSV file."
          },
          "fileReferenceId": {
            "type": "string",
            "description": "The reference URI of the exported ruleset file. Use this reference id in file download api to download the exported file.",
            "readOnly": true
          }
        },
        "example": {
          "exportFileName": "my-database-ruleset.csv"
        }
      },
      "DatabaseRulesetCSVImport": {
        "type": "object",
        "properties": {
          "importStatus": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "SUCCESS",
              "FAILED",
              "WARNING"
            ]
          },
          "message": {
            "type": "array",
            "readOnly": true,
            "items": {
              "type": "string"
            }
          }
        },
        "example": {
          "importStatus": "SUCCESS",
          "message": [
            "Inventory imported successfully"
          ]
        }
      },
      "DatabaseUsage": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the database."
          },
          "dbType": {
            "type": "string",
            "description": "Type of the database."
          },
          "size": {
            "type": "number",
            "description": "Size of the database in bytes."
          },
          "databaseProperties": {
            "type": "object",
            "description": "Properties of the database."
          },
          "executionId": {
            "type": "integer",
            "description": "The ID of the execution.",
            "format": "int32"
          },
          "failureReason": {
            "type": "string",
            "description": "Reason in case unable to calculate database size."
          },
          "reportingDate": {
            "type": "string",
            "description": "Date with time and timezone information in string format."
          }
        },
        "example": {
          "name": "testDbName",
          "dbType": "oracle",
          "size": 2695200768,
          "databaseProperties": {
            "port": 1504,
            "databaseIdentifier": "testHost:testServiceName:testDbName"
          },
          "executionId": 1,
          "failureReason": "",
          "reportingDate": "2018-11-06T04:14:46.929+0000"
        }
      },
      "DatabaseUsageList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DatabaseUsage"
            }
          }
        },
        "example": {
          "_pageInfo": {
            "numberOnPage": 1,
            "total": 1
          },
          "data": [
            {
              "name": "testDbName",
              "dbType": "oracle",
              "size": 2695200768,
              "databaseProperties": {
                "port": 1504,
                "databaseIdentifier": "testHost:testServiceName:testDbName"
              },
              "executionId": 1,
              "failureReason": "",
              "reportingDate": "2018-11-06T04:14:46.929+0000"
            }
          ]
        }
      },
      "DataCleansingExtension": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AlgorithmExtension"
          },
          {
            "type": "object",
            "properties": {
              "fileReferenceId": {
                "type": "string",
                "description": "The reference URI value returned from the endpoint for uploading files to the Masking Engine. The file should contain a newline separated list of {value, replacement} pairs separated by the delimiter. No extraneous whitespace should be present."
              },
              "delimiter": {
                "maxLength": 50,
                "minLength": 1,
                "type": "string",
                "description": "The delimiter string used to separate {value, replacement} pairs in the uploaded file",
                "default": "="
              }
            }
          }
        ]
      },
      "Domain": {
        "required": [
          "domainName"
        ],
        "type": "object",
        "properties": {
          "domainName": {
            "maxLength": 100,
            "type": "string"
          },
          "createdBy": {
            "maxLength": 255,
            "type": "string",
            "description": "Backend generated field",
            "readOnly": true
          },
          "defaultAlgorithmCode": {
            "maxLength": 500,
            "type": "string",
            "description": "Must be one of the algorithm codes"
          },
          "defaultTokenizationCode": {
            "maxLength": 500,
            "type": "string",
            "description": "This input is optional. If used, must be one of the tokenization algorithm codes"
          }
        },
        "example": {
          "domainName": "NEW_DOMAIN",
          "defaultAlgorithmCode": "SimpleMaskingAlgorithm"
        }
      },
      "DomainList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Domain"
            }
          }
        }
      },
      "Environment": {
        "required": [
          "applicationId",
          "environmentName",
          "purpose"
        ],
        "type": "object",
        "properties": {
          "environmentId": {
            "type": "integer",
            "description": "The ID of the Environment. This field will be generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "environmentName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name for this Environment. Note that it must be unique among Environments."
          },
          "applicationId": {
            "type": "integer",
            "description": "The ID of the associated application.",
            "format": "int32"
          },
          "applicationName": {
            "type": "string",
            "description": "The Name of the associated application.",
            "readOnly": true
          },
          "purpose": {
            "type": "string",
            "description": "The purpose of this Environment. Environments with a 'MASK' purpose will have access to Masking and Profiling jobs, whereas Environments with a 'TOKENIZE' purpose will have access to Tokenization and Re-Identification jobs. Note that any custom purposes created through the UI will be represented as 'MASK' purposes, due to the jobs that they have access to.",
            "enum": [
              "MASK",
              "TOKENIZE"
            ]
          },
          "isWorkflowEnabled": {
            "type": "boolean",
            "description": "True to have workflow enabled, false to leave the workflow disabled.",
            "default": false
          }
        },
        "example": {
          "environmentName": "test_env",
          "applicationId": "1",
          "purpose": "MASK"
        }
      },
      "EnvironmentList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Environment"
            }
          }
        }
      },
      "ErrorMessage": {
        "required": [
          "errorMessage"
        ],
        "type": "object",
        "properties": {
          "errorMessage": {
            "maxLength": 255,
            "type": "string",
            "description": "The error message."
          }
        }
      },
      "Execution": {
        "required": [
          "jobId"
        ],
        "type": "object",
        "properties": {
          "executionId": {
            "type": "integer",
            "description": "The ID of the execution for the referenced job. This field is generated by the Masking Engine when a job is run.",
            "format": "int32",
            "readOnly": true
          },
          "jobId": {
            "type": "integer",
            "description": "The ID of the job that is being executed.",
            "format": "int32"
          },
          "connectorType": {
            "type": "string",
            "description": "The type of the source connector. This field is only used for multi-tenant jobs that are also on-the-fly.",
            "enum": [
              "DATABASE",
              "FILE",
              "VSAM"
            ]
          },
          "sourceConnectorId": {
            "type": "integer",
            "description": "The ID of the source connector. This field is only used for multi-tenant jobs that are also on-the-fly.",
            "format": "int32"
          },
          "targetConnectorId": {
            "type": "integer",
            "description": "The ID of the target connector. This field is only used for multi-tenant jobs.",
            "format": "int32"
          },
          "status": {
            "type": "string",
            "description": "The status of the execution regarding its completion.",
            "readOnly": true,
            "enum": [
              "CANCELLED",
              "FAILED",
              "QUEUED",
              "RUNNING",
              "SUCCEEDED",
              "WARNING"
            ]
          },
          "rowsMasked": {
            "type": "integer",
            "description": "The number of rows masked or profiled so far by this execution. This is not applicable to JSON.",
            "format": "int64",
            "readOnly": true
          },
          "rowsTotal": {
            "type": "integer",
            "description": "The total number of rows that this execution should mask or profile. This value is set to -1 while the total row count is being calculated. This is not applicable to JSON.",
            "format": "int64",
            "readOnly": true
          },
          "bytesProcessed": {
            "type": "integer",
            "description": "The number of bytes masked or profiled so far by this execution. This is only applicable to JSON files and ASDD profiling jobs on XML files.",
            "format": "int64",
            "readOnly": true
          },
          "bytesTotal": {
            "type": "integer",
            "description": "The total number of bytes or profiled that this execution should mask. This value is set to -1 while the total byte count is being calculated. This is only applicable to JSON files and ASDD profiling jobs on XML files.",
            "format": "int64",
            "readOnly": true
          },
          "startTime": {
            "type": "string",
            "description": "The date and time that this execution was started.",
            "format": "date-time",
            "readOnly": true
          },
          "endTime": {
            "type": "string",
            "description": "The date and time that this execution completed.",
            "format": "date-time",
            "readOnly": true
          },
          "submitTime": {
            "type": "string",
            "description": "The date and time that this execution was submitted.",
            "format": "date-time",
            "readOnly": true
          }
        },
        "example": {
          "jobId": 167
        }
      },
      "ExecutionList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Execution"
            }
          }
        }
      },
      "ExecutionDetail": {
        "required": [
          "jobId"
        ],
        "type": "object",
        "properties": {
          "executionId": {
            "type": "integer",
            "description": "The ID of the execution for the referenced job. This field is generated by the Masking Engine when a job is run.",
            "format": "int32",
            "readOnly": true
          },
          "environmentId": {
            "type": "integer",
            "description": "The ID of the Environment.",
            "format": "int32",
            "readOnly": true
          },
          "environmentName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name for the Environment. Note that it must be unique among Environments."
          },
          "jobId": {
            "type": "integer",
            "description": "The ID of the job that is being executed.",
            "format": "int32"
          },
          "jobName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the job. Once the job is created, this field cannot be changed."
          },
          "jobType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the job"
          },
          "connectorType": {
            "type": "string",
            "description": "The type of the source connector. This field is only used for multi-tenant jobs that are also on-the-fly.",
            "enum": [
              "DATABASE",
              "FILE",
              "VSAM"
            ]
          },
          "sourceConnectorId": {
            "type": "integer",
            "description": "The ID of the source connector. This field is only used for multi-tenant jobs that are also on-the-fly.",
            "format": "int32"
          },
          "targetConnectorId": {
            "type": "integer",
            "description": "The ID of the target connector. This field is only used for multi-tenant jobs.",
            "format": "int32"
          },
          "executionConnectorType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of connector.",
            "readOnly": true
          },
          "hasNonConformingData": {
            "type": "boolean",
            "description": "If it has non-conforming data.",
            "readOnly": true
          },
          "status": {
            "maxLength": 50,
            "type": "string",
            "description": "The status of the execution regarding its completion.",
            "readOnly": true
          },
          "progression": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskEvents"
            }
          },
          "rowsMasked": {
            "type": "integer",
            "description": "The number of rows masked or profiled so far by this execution. This is not applicable to JSON.",
            "format": "int64",
            "readOnly": true
          },
          "rowsTotal": {
            "type": "integer",
            "description": "The total number of rows that this execution should mask or profile. This value is set to -1 while the total row count is being calculated. This is not applicable to JSON.",
            "format": "int64",
            "readOnly": true
          },
          "bytesProcessed": {
            "type": "integer",
            "description": "The number of bytes masked or profiled so far by this execution. This is only applicable to JSON files and ASDD profiling jobs on XML files.",
            "format": "int64",
            "readOnly": true
          },
          "bytesTotal": {
            "type": "integer",
            "description": "The total number of bytes that this execution should mask or profile. This value is set to -1 while the total byte count is being calculated. This is only applicable to JSON files and ASDD profiling jobs on XML files.",
            "format": "int64",
            "readOnly": true
          },
          "startTime": {
            "type": "string",
            "description": "The date and time that this execution was started.",
            "format": "date-time",
            "readOnly": true
          },
          "endTime": {
            "type": "string",
            "description": "The date and time that this execution completed.",
            "format": "date-time",
            "readOnly": true
          },
          "submitTime": {
            "type": "string",
            "description": "The date and time that this execution was submitted.",
            "format": "date-time",
            "readOnly": true
          }
        },
        "example": {
          "jobId": 167
        }
      },
      "ExecutionDetailList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecutionDetail"
            }
          }
        }
      },
      "ExecutionComponent": {
        "type": "object",
        "properties": {
          "executionComponentId": {
            "type": "integer",
            "description": "The ID of the execution component.",
            "format": "int32",
            "readOnly": true
          },
          "componentName": {
            "type": "string",
            "description": "The name of the component source e.g. the name of the file, table, or Mainframe Dataset file.",
            "readOnly": true
          },
          "executionId": {
            "type": "integer",
            "description": "The ID of the execution.",
            "format": "int32",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "The status of the execution of a component.",
            "readOnly": true,
            "enum": [
              "CANCELLED",
              "FAILED",
              "RUNNING",
              "SUCCEEDED",
              "WAITING",
              "WARNING"
            ]
          },
          "rowsMasked": {
            "type": "integer",
            "description": "The number of rows masked or profiled so far in the component. This is not applicable to JSON.",
            "format": "int64",
            "readOnly": true
          },
          "rowsTotal": {
            "type": "integer",
            "description": "The total number of rows that should be masked or profiled in the component. This value is set to -1 while the total row count is being calculated. This is not applicable to JSON.",
            "format": "int64",
            "readOnly": true
          },
          "bytesProcessed": {
            "type": "integer",
            "description": "The number of bytes masked or profiled so far in the component. This is only applicable to JSON files and ASDD profiling jobs on XML files.",
            "format": "int64",
            "readOnly": true
          },
          "bytesTotal": {
            "type": "integer",
            "description": "The total number of bytes that should be masked or profiled in the component. This value is set to -1 while the total byte count is being calculated. This is only applicable to JSON files and ASDD profiling jobs on XML files.",
            "format": "int64",
            "readOnly": true
          },
          "startTime": {
            "type": "string",
            "description": "The date and time that the masking engine starts operating on the component. This will be null for column level profiling and for components that the engine has not started masking.",
            "format": "date-time",
            "readOnly": true
          },
          "endTime": {
            "type": "string",
            "description": "The date and time that the component is placed in a final state i.e. FAILED or SUCCEEDED.",
            "format": "date-time",
            "readOnly": true
          },
          "logFile": {
            "type": "string",
            "description": "The log file name for the execution component.",
            "readOnly": true
          },
          "nonConformingDataCount": {
            "type": "integer",
            "description": "The non-conforming data count for the execution component.",
            "format": "int64",
            "readOnly": true
          }
        },
        "example": {
          "executionComponentId": 20,
          "componentName": "dummy_file.xml",
          "executionId": 10,
          "status": "SUCCEEDED"
        }
      },
      "ExecutionComponentLogsList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecutionComponentLog"
            }
          }
        }
      },
      "ExecutionComponentLogByComponentId": {
        "type": "object",
        "properties": {
          "executionId": {
            "type": "integer",
            "description": "The ID of the execution for the referenced job. This field is generated by the Masking Engine when a job is run.",
            "format": "int32",
            "readOnly": true
          },
          "componentId": {
            "type": "integer",
            "description": "The ID of the execution component.",
            "format": "int32",
            "readOnly": true
          },
          "componentName": {
            "maxLength": 255,
            "type": "string",
            "description": "Name of the execution component"
          },
          "fileDownloadId": {
            "type": "string",
            "description": "This value is returned on GET. It can be fed into the file-downloads endpoint.",
            "readOnly": true
          }
        },
        "example": {
          "executionId": 123,
          "componentId": 67,
          "componentName": "table_00",
          "fileDownloadId": "EXECUTION_LOGS-AB8aCbcdDe=="
        }
      },
      "ExecutionComponentList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecutionComponent"
            }
          }
        }
      },
      "ExecutionEvent": {
        "type": "object",
        "properties": {
          "executionEventId": {
            "type": "integer",
            "description": "The ID of the execution event.",
            "format": "int64",
            "readOnly": true
          },
          "executionId": {
            "type": "integer",
            "description": "The ID of the execution.",
            "format": "int32",
            "readOnly": true
          },
          "eventType": {
            "type": "string",
            "description": "The type of execution event.",
            "readOnly": true,
            "enum": [
              "JOB_ABORTED",
              "UNMASKED_DATA",
              "NONCONFORMANT_DATA_NULLIFICATION",
              "MASKING_FALLBACK",
              "FILE_PATTERN_NO_MATCH",
              "DATA_FETCH_FAIL"
            ]
          },
          "severity": {
            "type": "string",
            "description": "The severity of the execution event.",
            "readOnly": true,
            "enum": [
              "INFO",
              "WARNING",
              "CRITICAL"
            ]
          },
          "cause": {
            "type": "string",
            "description": "The cause of the execution event.",
            "readOnly": true,
            "enum": [
              "UNHANDLED_EXCEPTION",
              "IGNORED_EXCEPTION",
              "PATTERN_MATCH_FAILURE",
              "PREMASK_TYPE_CONVERSION_FAILURE",
              "POSTMASK_TYPE_CONVERSION_FAILURE",
              "EXTENDED_ALGORITHM_FAILURE",
              "DRIVER_SUPPORT_TASK_FAILURE",
              "DATA_NOT_FOUND_FAILURE",
              "INVALID_JOB_CONFIGURATION",
              "DATA_QUERY_TIMEOUT",
              "SALESFORCE_BATCH_JOB_ERRORS"
            ]
          },
          "count": {
            "type": "integer",
            "description": "The number of times the execution event occurred.",
            "format": "int64",
            "readOnly": true
          },
          "timeStamp": {
            "type": "string",
            "description": "The date and time that this execution event first occurred.",
            "format": "date-time",
            "readOnly": true
          },
          "executionComponentId": {
            "type": "integer",
            "description": "The ID of the execution component with which this execution event is associated",
            "format": "int32",
            "readOnly": true
          },
          "maskedObjectName": {
            "type": "string",
            "description": "The name of the column, field, or other object being masked when this event occurred, if applicable.",
            "readOnly": true
          },
          "maskedObjectParentName": {
            "type": "string",
            "description": "The parent name of the field being masked when this event occurred. It will be only applicable for Document Store Type columns and value will be column name",
            "readOnly": true
          },
          "algorithmName": {
            "type": "string",
            "description": "The name of the masking algorithm running when this event occurred, if applicable.",
            "readOnly": true
          },
          "exceptionType": {
            "type": "string",
            "description": "The Java class of the exception that triggered this event, if applicable.",
            "readOnly": true
          },
          "exceptionDetail": {
            "type": "string",
            "description": "The details associated with the Java exception that triggered this event, if applicable.",
            "readOnly": true
          },
          "sampleIds": {
            "type": "string",
            "description": "The list of salesforce sample IDs associated with this event, only applicable for SALESFORCE_BATCH_JOB_ERRORS cause.",
            "readOnly": true
          },
          "nonConformantDataSamples": {
            "type": "array",
            "description": "The list of non-conformant data samples associated with this execution event, if applicable.",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/NonConformantDataSample"
            }
          }
        },
        "example": {
          "executionEventId": 1,
          "executionId": 1,
          "eventType": "UNMASKED_DATA",
          "severity": "WARNING",
          "cause": "PATTERN_MATCH_FAILURE",
          "count": 1,
          "timeStamp": "2018-11-06T04:14:46.929+0000",
          "executionComponentId": 1,
          "maskedObjectName": "DB_FIELD_NAME",
          "algorithmName": "MyAlgorithm"
        }
      },
      "ExecutionEventList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecutionEvent"
            }
          }
        }
      },
      "ExecutionHistory": {
        "type": "object",
        "properties": {
          "executionHistoryId": {
            "type": "integer",
            "description": "The ID of the execution history for the referenced job. This field is generated by the Masking Engine when a job is run.",
            "format": "int32",
            "readOnly": true
          },
          "executionId": {
            "type": "integer",
            "description": "The ID of the execution for the referenced job. This field is generated by the Masking Engine when a job is run.",
            "format": "int32",
            "readOnly": true
          },
          "dbSrcName": {
            "type": "string",
            "description": "The name of the source database connector.",
            "readOnly": true
          },
          "dbSrcDatabase": {
            "type": "string",
            "description": "The name of the source database for the referenced job.",
            "readOnly": true
          },
          "dbSrcHost": {
            "type": "string",
            "description": "The host name of the source database for the referenced job.",
            "readOnly": true
          },
          "dbSrcPort": {
            "type": "string",
            "description": "The port number of the source database for the referenced job.",
            "readOnly": true
          },
          "dbSrcSchema": {
            "type": "string",
            "description": "The schema name of the source database for the referenced job.",
            "readOnly": true
          },
          "dbSrcSid": {
            "type": "string",
            "description": "The SID of the source database for the referenced job.",
            "readOnly": true
          },
          "dbSrcIsAdvanced": {
            "type": "boolean",
            "description": "It specified if the source db connector is advanced or not.",
            "readOnly": true
          },
          "dbTrgName": {
            "type": "string",
            "description": "The name of the target database connector.",
            "readOnly": true
          },
          "dbTrgDatabase": {
            "type": "string",
            "description": "The name of the target database for the referenced job.",
            "readOnly": true
          },
          "dbTrgHost": {
            "type": "string",
            "description": "The host name of the target database for the referenced job.",
            "readOnly": true
          },
          "dbTrgPort": {
            "type": "string",
            "description": "The port number of the target database for the referenced job.",
            "readOnly": true
          },
          "dbTrgSchema": {
            "type": "string",
            "description": "The schema name of the target database for the referenced job.",
            "readOnly": true
          },
          "dbTrgSid": {
            "type": "string",
            "description": "The SID of the target database for the referenced job.",
            "readOnly": true
          },
          "dbTrgIsAdvanced": {
            "type": "boolean",
            "description": "It specified if the target db connector is advanced or not.",
            "readOnly": true
          }
        },
        "example": {
          "executionHistoryId": 16,
          "executionId": 16,
          "dbSrcName": "Oracle",
          "dbSrcDatabase": "orcl",
          "dbSrcHost": "localhost",
          "dbSrcPort": "1521",
          "dbSrcSchema": "HR",
          "dbSrcSid": "orcl",
          "dbSrcIsAdvanced": false
        }
      },
      "ExecutionLogsList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExecutionLog"
            }
          }
        }
      },
      "ExecutionLogById": {
        "type": "object",
        "properties": {
          "executionId": {
            "type": "integer",
            "description": "The ID of the execution for the referenced job. This field is generated by the Masking Engine when a job is run.",
            "format": "int32"
          },
          "jobId": {
            "type": "integer",
            "description": "The ID of the job that is being executed.",
            "format": "int32"
          },
          "fileDownloadId": {
            "type": "string",
            "description": "This value is returned on GET. It can be fed into the file-downloads endpoint.",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "The status of the execution regarding its completion.",
            "readOnly": true,
            "enum": [
              "CANCELLED",
              "FAILED",
              "QUEUED",
              "RUNNING",
              "SUCCEEDED",
              "WARNING"
            ]
          }
        },
        "example": {
          "executionId": 123,
          "jobId": 167,
          "fileDownloadId": "EXECUTION_LOGS-AB8aCbcdDe==",
          "status": "SUCCEEDED"
        }
      },
      "ExecutionReport": {
        "type": "object",
        "properties": {
          "executionId": {
            "type": "integer",
            "description": "The ID of the execution for the referenced job. This field is generated by the Masking Engine when a job is run.",
            "format": "int32"
          },
          "reportType": {
            "type": "string",
            "description": "The type of report. For Masking, Tokenization and Re-Identification jobs there are 2 types of reports: Job and Inventory Report. For Profiling jobs there is only one type of report: Job Report.",
            "enum": [
              "JOB_REPORT",
              "INVENTORY_REPORT"
            ]
          },
          "fileDownloadId": {
            "type": "string",
            "description": "This value is returned on GET. It can be fed into the file-downloads endpoint.",
            "readOnly": true
          },
          "fileName": {
            "type": "string",
            "description": "The name of the report file.",
            "readOnly": true
          }
        },
        "example": {
          "executionId": 123,
          "reportType": "JOB_REPORT",
          "fileDownloadId": "EXECUTION_REPORT-aHKvZgfcjgW5ngfE==",
          "fileName": "masking_9_Fri_Oct_27_145315_IST_2023.pdf"
        }
      },
      "ExecutionSummary": {
        "required": [
          "jobId"
        ],
        "type": "object",
        "properties": {
          "executionId": {
            "type": "integer",
            "description": "The ID of the execution for the referenced job. This field is generated by the Masking Engine when a job is run.",
            "format": "int32",
            "readOnly": true
          },
          "environmentId": {
            "type": "integer",
            "description": "The ID of the Environment.",
            "format": "int32",
            "readOnly": true
          },
          "environmentName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name for the Environment. Note that it must be unique among Environments."
          },
          "jobId": {
            "type": "integer",
            "description": "The ID of the job that is being executed.",
            "format": "int32"
          },
          "jobName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the job. Once the job is created, this field cannot be changed."
          },
          "rulesetName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the ruleset. This must be unique within an environment."
          },
          "jobType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the job"
          },
          "noOfStreams": {
            "type": "integer",
            "description": "The number of stream.",
            "format": "int32"
          },
          "updatesRunning": {
            "type": "integer",
            "description": "The number of Updates running.",
            "format": "int32",
            "readOnly": true
          },
          "previousRunTime": {
            "maxLength": 50,
            "type": "string",
            "description": "Total time taken in the last run",
            "readOnly": true
          },
          "connectorType": {
            "type": "string",
            "description": "The type of the source connector. This field is only used for multi-tenant jobs that are also on-the-fly.",
            "enum": [
              "DATABASE",
              "FILE",
              "VSAM"
            ]
          },
          "sourceConnectorId": {
            "type": "integer",
            "description": "The ID of the source connector. This field is only used for multi-tenant jobs that are also on-the-fly.",
            "format": "int32"
          },
          "sourceConnectorName": {
            "type": "string",
            "description": "Source connector name",
            "readOnly": true
          },
          "targetConnectorId": {
            "type": "integer",
            "description": "The ID of the target connector. This field is only used for multi-tenant jobs.",
            "format": "int32"
          },
          "targetConnectorName": {
            "type": "string",
            "description": "Target connector name",
            "readOnly": true
          },
          "executionConnectorType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of connector.",
            "readOnly": true
          },
          "hasNonConformingData": {
            "type": "boolean",
            "description": "If it has non-conforming data.",
            "readOnly": true
          },
          "nonConformingComponentCount": {
            "type": "integer",
            "description": "The count of components having non conforming data.",
            "format": "int64"
          },
          "nonConformingFieldCount": {
            "type": "integer",
            "description": "The count of fields/columns having non conforming data.",
            "format": "int64"
          },
          "status": {
            "maxLength": 50,
            "type": "string",
            "description": "The status of the execution regarding its completion.",
            "readOnly": true
          },
          "progression": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskEvents"
            }
          },
          "rowsMasked": {
            "type": "integer",
            "description": "The number of rows masked or profiled so far by this execution. This is not applicable to JSON.",
            "format": "int64",
            "readOnly": true
          },
          "rowsTotal": {
            "type": "integer",
            "description": "The total number of rows that this execution should mask or profile. This value is set to -1 while the total row count is being calculated. This is not applicable to JSON.",
            "format": "int64",
            "readOnly": true
          },
          "bytesProcessed": {
            "type": "integer",
            "description": "The number of bytes masked or profiled so far by this execution. This is only applicable to JSON files and ASDD profiling jobs on XML files.",
            "format": "int64",
            "readOnly": true
          },
          "bytesTotal": {
            "type": "integer",
            "description": "The total number of bytes that this execution should mask or profile. This value is set to -1 while the total byte count is being calculated. This is only applicable to JSON files and ASDD profiling jobs on XML files.",
            "format": "int64",
            "readOnly": true
          },
          "startTime": {
            "type": "string",
            "description": "The date and time that this execution was started.",
            "format": "date-time",
            "readOnly": true
          },
          "endTime": {
            "type": "string",
            "description": "The date and time that this execution completed.",
            "format": "date-time",
            "readOnly": true
          },
          "submitTime": {
            "type": "string",
            "description": "The date and time that this execution was submitted.",
            "format": "date-time",
            "readOnly": true
          },
          "completionTime": {
            "type": "string",
            "description": "The time remaining in case of active job and time taken in case of completed job.",
            "readOnly": true
          },
          "currentTime": {
            "type": "string",
            "description": "The current date and time from server.",
            "format": "date-time",
            "readOnly": true
          },
          "totalComponentCount": {
            "type": "integer",
            "description": "The total number of tables or files available for masking.",
            "format": "int64",
            "readOnly": true
          },
          "maskedComponentCount": {
            "type": "integer",
            "description": "The total number of tables or files masked successfully.",
            "format": "int64",
            "readOnly": true
          },
          "warningComponentCount": {
            "type": "integer",
            "description": "The total number of tables or files masked with warnings.",
            "format": "int64",
            "readOnly": true
          },
          "remainingComponentCount": {
            "type": "integer",
            "description": "The total number of tables or files remaining for masking.",
            "format": "int64",
            "readOnly": true
          },
          "unmaskedComponentCount": {
            "type": "integer",
            "description": "The total number of tables or files remaining for masking or failed.",
            "format": "int64",
            "readOnly": true
          },
          "isJobReportAvailable": {
            "type": "boolean",
            "description": "If it has job report available or not.",
            "readOnly": true
          },
          "isInventoryReportAvailable": {
            "type": "boolean",
            "description": "If it has Inventory report available or not.",
            "readOnly": true
          },
          "usesByteMetrics": {
            "type": "boolean",
            "description": "If the underlying job uses row metrics. This is used to determine whether we should display metrics in rows or bytes in the job monitor; XML file ASDD profiling uses bytes whereas masking and legacy profiling uses rows (tokens).",
            "readOnly": true
          },
          "executionHistory": {
            "$ref": "#/components/schemas/ExecutionHistory"
          },
          "totalProgress": {
            "type": "integer",
            "description": "Combined progress of all the execution components.",
            "format": "int32",
            "readOnly": true
          },
          "inventoryFileReference": {
            "type": "string",
            "description": "The reference to the inventory file. This will be set for DB masking jobs that have an inventory data collected in CSV.",
            "readOnly": true
          }
        },
        "example": {
          "jobId": 167
        }
      },
      "ExportObject": {
        "required": [
          "blob",
          "exportResponseMetadata",
          "publicKey",
          "signature"
        ],
        "type": "object",
        "properties": {
          "exportResponseMetadata": {
            "type": "object",
            "properties": {}
          },
          "blob": {
            "type": "string",
            "description": "Export package containing data representing masking object",
            "x-is-sensitive": true
          },
          "signature": {
            "type": "string",
            "description": "Cryptographic signature of the blob"
          },
          "publicKey": {
            "type": "string",
            "description": "Public version of the key used to generate the signature"
          }
        }
      },
      "ExportObjectMetadata": {
        "required": [
          "objectIdentifier",
          "objectType"
        ],
        "type": "object",
        "properties": {
          "objectIdentifier": {
            "type": "object",
            "properties": {}
          },
          "objectType": {
            "type": "string",
            "description": "Type of object to export",
            "enum": [
              "ALGORITHM_PLUGIN",
              "ALGORITHM_REFERENCE",
              "APPLICATION_SETTINGS",
              "BINARYLOOKUP",
              "CLASSIFIER",
              "CLASSIFIER_REFERENCE",
              "CLEANSING",
              "CREDENTIAL_PATH",
              "DATABASE_CONNECTOR",
              "DATABASE_RULESET",
              "DATABASE_RULESET_REFERENCE",
              "DATASET_CONNECTOR",
              "DATASET_RULESET",
              "DATASET_FORMAT",
              "DATA_TABLE",
              "DATE_SHIFT",
              "DOMAIN",
              "DOMAIN_REFERENCE",
              "DRIVER_SUPPORT_PLUGIN",
              "ENVIRONMENT",
              "FILE_CONNECTOR",
              "FILE_FORMAT",
              "FILE_RULESET",
              "GLOBAL_OBJECT",
              "JDBC_DRIVER",
              "KEY",
              "LICENSE_INFO",
              "LOOKUP",
              "MAPPLET",
              "MASKING_JOB",
              "MIN_MAX",
              "MOUNT_INFORMATION",
              "PASSWORD_VAULT",
              "PROFILE_JOB",
              "PROFILE_SET",
              "PROFILE_SET_REFERENCE",
              "REDACTION",
              "REIDENTIFICATION_JOB",
              "SEGMENT",
              "SOURCE_DATABASE_CONNECTOR",
              "SOURCE_DATASET_CONNECTOR",
              "SOURCE_FILE_CONNECTOR",
              "TOKENIZATION",
              "TOKENIZATION_JOB",
              "USER_ALGORITHM"
            ]
          },
          "objectName": {
            "type": "string",
            "description": "Human-readable name of the object. Populated in dependency responses; not required for export requests."
          },
          "revisionHash": {
            "type": "string",
            "description": "Global comparison value for the syncable object that gets recalculated upon update to any object along its dependency chain"
          },
          "revisionId": {
            "type": "string",
            "description": "Global ID for the syncable object that gets recalculated only upon update to its own object"
          }
        }
      },
      "ExportObjectMetadataList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportObjectMetadata"
            }
          }
        }
      },
      "ExportResponseMetadata": {
        "type": "object",
        "properties": {
          "exportHost": {
            "type": "string"
          },
          "exportDate": {
            "type": "string"
          },
          "requestedObjectList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportResponseMetadataItem"
            }
          },
          "exportedObjectList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportResponseMetadataItem"
            }
          },
          "structure": {
            "type": "string",
            "description": "The structure of the sync bundle"
          },
          "version": {
            "type": "string",
            "description": "The version of the syncable objects"
          },
          "salt": {
            "type": "string",
            "description": "The salt to decrypt sync V2 export files"
          }
        }
      },
      "FeatureFlag": {
        "required": [
          "featureFlagName"
        ],
        "type": "object",
        "properties": {
          "featureFlagName": {
            "maxLength": 255,
            "type": "string",
            "description": "Name of the flag",
            "readOnly": true
          },
          "isEnabled": {
            "type": "boolean",
            "description": "If the flag is enabled or not"
          }
        },
        "example": {
          "featureFlagName": "featureFlag",
          "isEnabled": true
        }
      },
      "FileConnector": {
        "required": [
          "connectionInfo",
          "connectorName",
          "environmentId",
          "fileType"
        ],
        "type": "object",
        "properties": {
          "fileConnectorId": {
            "type": "integer",
            "description": "The ID number of the file connector. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "connectorName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the file connector."
          },
          "environmentId": {
            "type": "integer",
            "description": "The ID number of the environment that the file connector is in. Once the file connector is created, this field cannot be changed.",
            "format": "int32"
          },
          "fileType": {
            "type": "string",
            "description": "This field denotes which file type, of the several types supported, the file connector will target. Once a FileConnector object is created, its fileType cannot be changed.",
            "enum": [
              "DELIMITED",
              "FIXED_WIDTH",
              "XML",
              "JSON",
              "PARQUET"
            ]
          },
          "connectionInfo": {
            "$ref": "#/components/schemas/ConnectionInfo"
          },
          "authPresent": {
            "type": "string",
            "description": "Denotes whether authentication is present or not for this connector, UI only field",
            "readOnly": true
          }
        },
        "example": {
          "connectorName": "file_connector_via_ftp",
          "environmentId": 123,
          "fileType": "DELIMITED",
          "connectionInfo": {
            "connectionMode": "FTP",
            "path": "/path/to/files",
            "host": "host123.server.com",
            "loginName": "ftpuser",
            "password": "secret123",
            "port": 23456,
            "userDirIsRoot": false
          }
        }
      },
      "FileConnectorList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileConnector"
            }
          }
        }
      },
      "FileFieldMetadata": {
        "required": [
          "isProfilerWritable"
        ],
        "type": "object",
        "properties": {
          "fileFieldMetadataId": {
            "type": "integer",
            "description": "The ID number of the file field metadata. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "fileFormatId": {
            "type": "integer",
            "description": "The ID number of the file format that defines this file field.",
            "format": "int32",
            "readOnly": true
          },
          "recordTypeId": {
            "type": "integer",
            "description": "The ID number of the record type that defines this file field. Required in case of Create API",
            "format": "int32"
          },
          "fieldLength": {
            "type": "integer",
            "description": "The length of the file field, in number of characters, as determined by the associated file format. Required in case of Create API",
            "format": "int32"
          },
          "fieldName": {
            "type": "string",
            "description": "The name of the file field, as determined by the associated file format. Required in case of Create API",
            "readOnly": true
          },
          "fieldPositionNumber": {
            "type": "integer",
            "description": "The position of the file field with respect to the other file fields, as determined by the associated file format. Required in case of Create API",
            "format": "int32"
          },
          "algorithmName": {
            "maxLength": 500,
            "type": "string",
            "description": "The name of the algorithm assigned to this file field. File fields that are unmasked should have this property unset, in addition to having 'domainName' unset. If this field is set, then the 'domainName' must also be specified."
          },
          "algorithmFieldId": {
            "type": "integer",
            "description": "The ID number of the algorithm field that is associated with this column.",
            "format": "int64"
          },
          "algorithmFieldName": {
            "type": "string",
            "description": "The name of the algorithm field that is associated with this column.",
            "readOnly": true
          },
          "algorithmGroupNo": {
            "type": "integer",
            "description": "The group number of algorithm to identify a set of columns associated with one instance of algorithm.",
            "format": "int64"
          },
          "domainName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the domain assigned to this file field. File fields that are left unmasked should have this property unset. If the 'domainName' is set, but the 'algorithmName' is unset, then the default algorithm corresponding to the 'domainName' will be used."
          },
          "dateFormat": {
            "maxLength": 50,
            "type": "string",
            "description": "The date format of the date assigned to this column."
          },
          "isMasked": {
            "type": "boolean",
            "description": "This field indicates whether or not a file field is being masked. This field is assigned by the Masking Engine to true or false based on whether the file field is assigned an algorithm and domain.",
            "readOnly": true
          },
          "isProfilerWritable": {
            "type": "boolean",
            "description": "This field indicates whether or not a file filed's algorithm or domain assignment may be modified during the execution of a profile job when there is a profiling match."
          },
          "notes": {
            "maxLength": 500,
            "type": "string",
            "description": "This field is used to store additional information about the file field."
          },
          "documentStoreType": {
            "type": "string",
            "description": "This field indicates the type of document stored in the file field. Required in case where docStoreFileFormatId is provided. Accepted values: ['JSON','XML']"
          },
          "docStoreFileFormatId": {
            "type": "integer",
            "description": "The ID number of the document store file format. Required in case where documentStoreType is provided.",
            "format": "int32"
          },
          "docStoreFileFormatName": {
            "type": "string",
            "description": "The name of the document store file format. Required in case where documentStoreType is assigned.",
            "readOnly": true
          }
        },
        "example": {
          "recordTypeId": 1,
          "fieldName": "FooField",
          "fieldPositionNumber": 6,
          "fieldLength": 10,
          "algorithmName": "FirstNameLookup",
          "domainName": "FIRST_NAME",
          "isProfilerWritable": false
        }
      },
      "FileFieldMetadataList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileFieldMetadata"
            }
          }
        }
      },
      "FileFormat": {
        "type": "object",
        "properties": {
          "fileFormatId": {
            "type": "integer",
            "description": "The ID number of the file format. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "fileFormatName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the file format, as inferred from the uploaded file.",
            "readOnly": true
          },
          "fileFormatType": {
            "type": "string",
            "description": "The type of file that this file format describes.",
            "readOnly": true,
            "enum": [
              "DELIMITED",
              "FIXED_WIDTH",
              "XML",
              "JSON",
              "PARQUET"
            ]
          },
          "header": {
            "type": "integer",
            "description": "The number of lines at the beginning of the file to skip.",
            "format": "int32"
          },
          "footer": {
            "type": "integer",
            "description": "The number of lines at the end of the file to skip.",
            "format": "int32"
          },
          "wholeFileMasking": {
            "type": "boolean",
            "description": "This flag indicates if the file format is associated with a file to be read as whole or line-by-line (Only for FIXED_WIDTH file type). For example, if the whole file masking is true, then the whole file will be read as a single record, rather than reading it line by line.",
            "readOnly": true
          },
          "fieldsCount": {
            "type": "integer",
            "description": "This returns the number of fields present in a file format.",
            "format": "int64",
            "readOnly": true
          },
          "fileFormatDownloadId": {
            "type": "string",
            "description": "The ID of the file format download. This is used to download the file format.",
            "readOnly": true
          }
        },
        "example": {
          "fileFormatId": "3",
          "fileFormatName": "DelimitedFileFormat.txt",
          "fileFormatType": "DELIMITED",
          "header": 2,
          "footer": 1
        }
      },
      "FileFormatList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileFormat"
            }
          }
        }
      },
      "FileFormatMetadata": {
        "type": "object",
        "properties": {
          "fileMetadataId": {
            "type": "integer",
            "description": "The ID of the file metadata. This field is set by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "fileName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the file metadata. This name must match the name of a file in the ruleset it is created on. This name must be unique for the given ruleset; in other words, the same file cannot be added to a ruleset more than once.",
            "readOnly": true
          },
          "rulesetId": {
            "type": "integer",
            "description": "The ID of the ruleset to create the file metadata on.",
            "format": "int32"
          },
          "fileFormatId": {
            "type": "integer",
            "description": "The ID of the file format corresponding to this file. It is used to determine the fields for this file. This field is required.",
            "format": "int32"
          },
          "fileFormatName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the file format, as inferred from the uploaded file."
          },
          "fileType": {
            "type": "string",
            "description": "The type of file this is. This field will match the file connector file type.",
            "readOnly": true,
            "enum": [
              "DELIMITED",
              "FIXED_WIDTH",
              "XML",
              "JSON",
              "PARQUET"
            ]
          },
          "delimiter": {
            "maxLength": 50,
            "type": "string",
            "description": "The delimiter for a delimited file. This field should be left blank for other file types."
          },
          "enclosure": {
            "maxLength": 5,
            "type": "string",
            "description": "The text enclosure for the file."
          },
          "enclosureEscapeCharacter": {
            "type": "string",
            "description": "The character used to escape a literal enclosure character within an enclosed value. By default, this is equal to the enclosure value itself, so doubling the enclosure character escape it."
          },
          "escapeEnclosureEscapeCharacter": {
            "type": "boolean",
            "description": "This flag indicates whether the enclosure escape character also escapes itself. For example, if the enclosure escape character is *, then the sequence ** would be treated as a single * character, rather than an escape.",
            "default": false
          },
          "endOfRecord": {
            "maxLength": 25,
            "type": "string",
            "description": "The string of characters that delineates the end-of-record for a file. Note that, for linux this is '\\n', and for windows it is '\\r\\n'."
          },
          "nameIsRegularExpression": {
            "type": "boolean",
            "description": "Whether or not this file name represents a regular expression.",
            "default": false
          },
          "wholeFileMasking": {
            "type": "boolean",
            "description": "This flag indicates whether the file is to be read as whole or line-by-line (Only for FIXED_WIDTH file type). For example, if the whole file masking is true, then the whole file will be read as a single record, rather than reading it line by line.",
            "default": false
          }
        },
        "example": {
          "fileName": "file.delimited",
          "fileFormatName": "format.delimited",
          "rulesetId": 1,
          "fileFormatId": 2,
          "delimiter": "*",
          "endOfRecord": "\n"
        }
      },
      "FileFormatMetadataList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileFormatMetadata"
            }
          }
        }
      },
      "FileMetadata": {
        "required": [
          "fileName",
          "rulesetId"
        ],
        "type": "object",
        "properties": {
          "fileMetadataId": {
            "type": "integer",
            "description": "The ID of the file metadata. This field is set by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "fileName": {
            "maxLength": 240,
            "type": "string",
            "description": "The name of the file metadata. This name must match the name of a file in the ruleset it is created on. This name must be unique for the given ruleset; in other words, the same file cannot be added to a ruleset more than once.",
            "readOnly": true
          },
          "rulesetId": {
            "type": "integer",
            "description": "The ID of the ruleset to create the file metadata on.",
            "format": "int32"
          },
          "fileFormatId": {
            "type": "integer",
            "description": "The ID of the file format corresponding to this file. It is used to determine the fields for this file. This field is required.",
            "format": "int32"
          },
          "fileType": {
            "type": "string",
            "description": "The type of file this is. This field will match the file connector file type.",
            "readOnly": true,
            "enum": [
              "DELIMITED",
              "FIXED_WIDTH",
              "XML",
              "JSON",
              "PARQUET"
            ]
          },
          "delimiter": {
            "maxLength": 50,
            "type": "string",
            "description": "The delimiter for a delimited file. This field should be left blank for other file types."
          },
          "enclosure": {
            "maxLength": 5,
            "type": "string",
            "description": "The text enclosure for the file."
          },
          "enclosureEscapeCharacter": {
            "type": "string",
            "description": "The character used to escape a literal enclosure character within an enclosed value. By default, this is equal to the enclosure value itself, so doubling the enclosure character escape it."
          },
          "escapeEnclosureEscapeCharacter": {
            "type": "boolean",
            "description": "This flag indicates whether the enclosure escape character also escapes itself. For example, if the enclosure escape character is *, then the sequence ** would be treated as a single * character, rather than an escape.",
            "default": false
          },
          "endOfRecord": {
            "maxLength": 25,
            "type": "string",
            "description": "The string of characters that delineates the end-of-record for a file. Note that, for linux this is '\\n', and for windows it is '\\r\\n'."
          },
          "nameIsRegularExpression": {
            "type": "boolean",
            "description": "Whether or not this file name represents a regular expression.",
            "default": false
          },
          "wholeFileMasking": {
            "type": "boolean",
            "description": "This flag indicates whether the file is to be read as whole or line-by-line (Only for FIXED_WIDTH file type). For example, if the whole file masking is true, then the whole file will be read as a single record, rather than reading it line by line.",
            "default": false
          }
        },
        "example": {
          "fileName": "file.delimited",
          "rulesetId": 1,
          "fileFormatId": 2,
          "delimiter": "*",
          "endOfRecord": "\n"
        }
      },
      "FileMetadataList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileMetadata"
            }
          }
        }
      },
      "FileMetadataBulkInput": {
        "required": [
          "fileMetadata"
        ],
        "type": "object",
        "properties": {
          "fileMetadata": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileMetadata"
            }
          }
        }
      },
      "FileRuleset": {
        "required": [
          "fileConnectorId",
          "rulesetName"
        ],
        "type": "object",
        "properties": {
          "fileRulesetId": {
            "type": "integer",
            "description": "The ID of the file ruleset. This field is set by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "rulesetName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the ruleset. This must be unique within an environment."
          },
          "fileConnectorId": {
            "type": "integer",
            "description": "The ID of the file connector that this ruleset corresponds to. Note that the ruleset will be created on the same environment as its connector.",
            "format": "int32"
          }
        },
        "example": {
          "rulesetName": "Rule123",
          "fileConnectorId": 1
        }
      },
      "FileRulesetList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileRuleset"
            }
          }
        }
      },
      "FileRulesetCopy": {
        "required": [
          "newRulesetName"
        ],
        "type": "object",
        "properties": {
          "newRulesetName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the ruleset. This must be unique within an environment."
          }
        },
        "example": {
          "newRulesetName": "Rule123"
        }
      },
      "FileRulesetCSVExport": {
        "required": [
          "exportFileName"
        ],
        "type": "object",
        "properties": {
          "exportFileName": {
            "maxLength": 50,
            "type": "string",
            "description": "The name of the exported ruleset CSV file."
          },
          "fileReferenceId": {
            "type": "string",
            "description": "The reference URI of the exported ruleset file. Use this reference id in file download api to download the exported file.",
            "readOnly": true
          }
        },
        "example": {
          "exportFileName": "my-delimited-file-ruleset.csv"
        }
      },
      "FileRulesetCSVImport": {
        "type": "object",
        "properties": {
          "importStatus": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "SUCCESS",
              "FAILED",
              "WARNING"
            ]
          },
          "message": {
            "type": "array",
            "readOnly": true,
            "items": {
              "type": "string"
            }
          }
        },
        "example": {
          "importStatus": "SUCCESS",
          "message": [
            "Inventory imported successfully"
          ]
        }
      },
      "FileUpload": {
        "type": "object",
        "properties": {
          "fileUuid": {
            "type": "string",
            "description": "The unique identifier of the uploaded file. This field is auto-generated by the Masking Engine. This field applies to permanently uploaded files only and can be used to update and delete a permanent file by its ID.",
            "readOnly": true
          },
          "fileReferenceId": {
            "type": "string",
            "description": "The reference URI of the uploaded file.",
            "readOnly": true
          },
          "filename": {
            "type": "string",
            "description": "The name of the file.",
            "readOnly": true
          },
          "fileSize": {
            "type": "number",
            "description": "The size in B (bytes) of the uploaded file.",
            "readOnly": true
          },
          "persistenceType": {
            "type": "string",
            "description": "The type of persistence of the uploaded file. Temporary/object indicates that the file was either uploaded as a temporary file or as a file associated with a masking object, like a JDBC driver or algorithm plugin.",
            "enum": [
              "PERMANENT",
              "OBJECT/TEMPORARY"
            ]
          }
        },
        "example": {
          "fileReferenceId": "delphix-file://upload/f_08bb469a2ddc407bb97a31e96ed0a76a/foo.bar"
        }
      },
      "FileUploadList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileUpload"
            }
          }
        }
      },
      "Filter": {
        "type": "object",
        "properties": {
          "filter_expression": {
            "type": "string",
            "description": "The condition specified in filter-query-language to search by.",
            "readOnly": true
          }
        },
        "example": {
          "filter_expression": "<attribute> EQ 123"
        }
      },
      "ForgotPassword": {
        "required": [
          "userName"
        ],
        "type": "object",
        "properties": {
          "userName": {
            "maxLength": 255,
            "type": "string",
            "description": "The username for logging into the Masking Engine."
          }
        },
        "example": {
          "userName": "maskinguser"
        }
      },
      "FreeTextRedactionExtension": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AlgorithmExtension"
          },
          {
            "type": "object",
            "properties": {
              "denyListRedaction": {
                "type": "boolean",
                "description": "Deny list redaction if true, allow list redaction if false.",
                "default": true
              },
              "lookupFileReferenceId": {
                "type": "string",
                "description": "The reference URI value returned from the endpoint for uploading the lookup file to the Masking Engine."
              },
              "lookupRedactionValue": {
                "maxLength": 255,
                "type": "string",
                "description": "The value to use to redact items matching entries specified in the lookup file."
              },
              "profileSetId": {
                "type": "integer",
                "description": "The ID number of the profile set for defining the pattern matching to use for identifying values for redaction.",
                "format": "int32"
              },
              "profileSetRedactionValue": {
                "maxLength": 255,
                "type": "string",
                "description": "The value to use to redact items matching patterns defined by the profile set."
              }
            }
          }
        ]
      },
      "Guardrail": {
        "type": "object",
        "properties": {
          "status": {
            "maxLength": 255,
            "type": "string",
            "description": "Severity of the issue."
          },
          "issue": {
            "maxLength": 255,
            "type": "string",
            "description": "Name of the issue."
          },
          "issueMetadata": {
            "type": "array",
            "items": {
              "maxLength": 255,
              "type": "string"
            }
          }
        },
        "example": {
          "status": "WARN",
          "issue": "MISSING_DB_IDENTITY_COLUMN",
          "issueMetadata": [
            "table1",
            "table2"
          ]
        }
      },
      "GuardrailList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Guardrail"
            }
          }
        }
      },
      "IntegerIdentifier": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ObjectIdentifier"
          },
          {
            "required": [
              "id"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "InventoryApproval": {
        "required": [
          "environmentId",
          "inventoryStatus",
          "rulesetName"
        ],
        "type": "object",
        "properties": {
          "inventoryApprovalId": {
            "type": "integer",
            "description": "The ID of the Inventory Approval. This field will be generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "environmentId": {
            "type": "integer",
            "description": "The ID of the Environment.",
            "format": "int32",
            "readOnly": true
          },
          "rulesetName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name for this Ruleset inventory to be updated."
          },
          "inventoryStatus": {
            "type": "string",
            "description": "The inventory status of this Environment's inventory.",
            "enum": [
              "NEW",
              "SUBMITTED",
              "APPROVED",
              "REJECTED"
            ]
          },
          "submitUserLoginNm": {
            "maxLength": 255,
            "type": "string",
            "description": "The login name of the user submitting the ruleset inventory to be approved."
          },
          "approvalUserLoginNm": {
            "maxLength": 255,
            "type": "string",
            "description": "The login name of the user approving or rejecting the ruleset inventory."
          }
        },
        "example": {
          "inventoryApprovalId": 1,
          "environmentId": 1,
          "rulesetName": "DelimitedFileRs",
          "inventoryStatus": "SUBMITTED"
        }
      },
      "JdbcDriver": {
        "required": [
          "driverClassName",
          "driverName"
        ],
        "type": "object",
        "properties": {
          "jdbcDriverId": {
            "type": "integer",
            "description": "The ID number of the driver. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "driverName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the driver."
          },
          "driverClassName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the class to use."
          },
          "description": {
            "maxLength": 1024,
            "type": "string",
            "description": "A description of the driver."
          },
          "version": {
            "maxLength": 255,
            "type": "string",
            "description": "The version of the driver.",
            "readOnly": true
          },
          "uploadedBy": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the user that uploaded the driver",
            "readOnly": true
          },
          "uploadDate": {
            "type": "string",
            "description": "The date the driver was updated.",
            "format": "date-time",
            "readOnly": true
          },
          "checksum": {
            "type": "string",
            "description": "The md5 checksum of the uploaded driver.",
            "readOnly": true
          },
          "builtIn": {
            "type": "boolean",
            "description": "Whether this is a JDBC driver that is supported natively by the engine.",
            "readOnly": true
          },
          "loggerInstalled": {
            "type": "boolean",
            "description": "Whether a logger is successfully installed.",
            "readOnly": true
          },
          "fileReferenceId": {
            "type": "string",
            "description": "The file references ID of the uploaded zip file"
          },
          "driverSupportId": {
            "type": "integer",
            "description": "The ID of the Driver Support plugin to use for this JDBC Driver.",
            "format": "int64"
          }
        },
        "example": {
          "driverName": "HANA driver",
          "driverClassName": "com.sap.db.jdbc.Driver",
          "fileReferenceId": "delphix-file://upload/f_08bb469a2ddc407bb97a31e96ed0a76a/foo.bar"
        }
      },
      "JdbcDriversList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JdbcDriver"
            }
          }
        }
      },
      "Job": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "integer",
            "description": "The ID number of the job. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "jobName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the job. Once the job is created, this field cannot be changed."
          },
          "jobType": {
            "maxLength": 50,
            "type": "string",
            "description": "The type of the job"
          },
          "executionId": {
            "type": "integer",
            "description": "The ID of the latest execution for the referenced job. This field is generated by the Masking Engine when a job is run.",
            "format": "int32",
            "readOnly": true
          },
          "endTime": {
            "type": "string",
            "description": "The date and time that this execution completed.",
            "format": "date-time",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "The status of the execution regarding its completion.",
            "readOnly": true,
            "enum": [
              "CANCELLED",
              "FAILED",
              "QUEUED",
              "RUNNING",
              "SUCCEEDED",
              "WARNING"
            ]
          },
          "rowsTotal": {
            "type": "integer",
            "description": "The total number of rows that this execution should mask. This value is set to -1 while the total row count is being calculated.",
            "format": "int64"
          },
          "rowsMasked": {
            "type": "integer",
            "description": "The number of rows masked or profiled so far by this execution.",
            "format": "int64"
          },
          "totalProgress": {
            "type": "integer",
            "description": "The number of rows masked or profiled so far by this execution.",
            "format": "int32"
          },
          "rulesetName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the ruleset. This must be unique within an environment."
          },
          "hasNonConformingData": {
            "type": "boolean",
            "description": "If latest execution has non-conforming data.",
            "readOnly": true
          },
          "runTime": {
            "type": "string",
            "description": "The run time for latest execution.",
            "readOnly": true
          },
          "multiTenant": {
            "type": "boolean",
            "description": "This field determines whether the job, after creation, can be executed using a connector that is different from the underlying connector associated with the ruleset that this job is based on.",
            "default": false
          },
          "onTheFly": {
            "type": "boolean",
            "description": "This field determines whether the job is an on-the-fly job.",
            "default": false
          },
          "rulesetType": {
            "type": "string",
            "description": "The type(table, dataset, delimited, jsonFile etc.) of the ruleset this job is assigned to.",
            "readOnly": true
          }
        },
        "example": {
          "jobId": 5,
          "jobName": "mask_job",
          "jobType": "mask",
          "rulesetName": "tempRuleSet"
        }
      },
      "JobList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Job"
            }
          }
        }
      },
      "KeyIdentifier": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ObjectIdentifier"
          },
          {
            "required": [
              "keyId"
            ],
            "type": "object",
            "properties": {
              "keyId": {
                "type": "string"
              }
            }
          }
        ]
      },
      "KnowledgeBaseInfo": {
        "type": "object",
        "properties": {
          "knowledgeBaseInfoId": {
            "type": "integer",
            "description": "The ID of the knowledge base entry.",
            "format": "int64",
            "readOnly": true
          },
          "title": {
            "type": "string",
            "description": "The title for the knowledge base entry.",
            "readOnly": true
          },
          "link": {
            "type": "string",
            "description": "The link to the information in the knowledge base.",
            "readOnly": true
          },
          "tag": {
            "type": "string",
            "description": "The lookup tag associated with the information in the knowledge base.",
            "readOnly": true
          }
        },
        "example": {
          "knowledgeBaseInfoId": 1,
          "title": "Resolving table does not exist",
          "link": "https://support.delphix.com/Delphix_Masking_Engine/Resolving_an_ORA-00942_error_while_Masking_data",
          "tag": "ORA-00942"
        }
      },
      "KnowledgeBaseInfoList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KnowledgeBaseInfo"
            }
          }
        }
      },
      "License": {
        "type": "object",
        "properties": {
          "licenseId": {
            "type": "integer",
            "description": "The ID number of the license. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "licenseFileName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the license, as inferred from the uploaded file.",
            "readOnly": true
          },
          "licenseType": {
            "type": "string",
            "description": "The type of file that this license describes.",
            "readOnly": true,
            "enum": [
              "JDBC_DRIVER"
            ]
          },
          "jdbcDriverId": {
            "type": "integer",
            "description": "The ID number of the JDBC driver.",
            "format": "int32",
            "readOnly": true
          },
          "createdTime": {
            "type": "string",
            "description": "The time when the license was added. This field is auto-generated by the Masking Engine.",
            "format": "date-time",
            "readOnly": true
          }
        },
        "example": {
          "licenseId": "3",
          "licenseFileName": "license.bin",
          "licenseType": "JDBC_DRIVER",
          "jdbcDriverId": "1",
          "createdTime": "2023-03-15T12:16:35.964Z"
        }
      },
      "LicenseList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/License"
            }
          }
        }
      },
      "LogFileDetail": {
        "type": "object",
        "properties": {
          "fileDownloadId": {
            "type": "string",
            "description": "The identifier to use when downloading the file via the /file-downloads endpoint."
          },
          "file-name": {
            "type": "string",
            "description": "The name of the log file."
          },
          "file-number": {
            "type": "integer",
            "description": "The number of the file ordered from most recent to least recent. The 0th file represents the one that is currently being written to.",
            "format": "int32"
          },
          "timestamp": {
            "type": "string",
            "description": "The timestamp of the first statement in the log file."
          }
        }
      },
      "LogFileDetailList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LogFileDetail"
            }
          }
        }
      },
      "LogFileInfo": {
        "type": "object",
        "properties": {
          "fileDownloadId": {
            "type": "string",
            "description": "The identifier to use when downloading the file via the /file-downloads endpoint."
          },
          "file-number": {
            "type": "integer",
            "description": "The number of the file ordered from most recent to least recent. The 0th file represents the one that is currently being written to.",
            "format": "int32"
          },
          "logLevel": {
            "type": "string",
            "description": "The log level of the log file.",
            "enum": [
              "DEBUG",
              "ERROR",
              "INFO",
              "WARN"
            ]
          }
        }
      },
      "LogFileInfoList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LogFileInfo"
            }
          }
        }
      },
      "LogPageInfo": {
        "type": "object",
        "properties": {
          "logRolled": {
            "type": "boolean",
            "description": "Indicates whether the log file has been rotated."
          },
          "logFileNumber": {
            "type": "integer",
            "description": "The number of the log file."
          },
          "nextPageOffset": {
            "type": "integer",
            "description": "The offset to use when retrieving the next page from the log file."
          },
          "total": {
            "type": "integer",
            "description": "The total number of lines in the log file."
          }
        },
        "example": {
          "logRolled": false,
          "logFileNumber": 0,
          "nextPageOffset": 100,
          "total": 1000
        }
      },
      "LogPageRequest": {
        "type": "object",
        "properties": {
          "logFileNumber": {
            "type": "integer",
            "description": "The number of the log file to retrieve."
          },
          "offset": {
            "type": "integer",
            "description": "The offset to use when retrieving the log file."
          },
          "pageSize": {
            "type": "integer",
            "description": "The number of lines to retrieve from the log file."
          },
          "timestamp": {
            "type": "string",
            "description": "The timestamp to identify whether the log file has been rolled."
          }
        },
        "example": {
          "logFileNumber": 0,
          "offset": 0,
          "pageSize": 100,
          "timestamp": "2019-01-01T00:00:00Z"
        }
      },
      "LogStatement": {
        "required": [
          "logLevel",
          "logStatement"
        ],
        "type": "object",
        "properties": {
          "logStatement": {
            "maxLength": 1000,
            "type": "string",
            "description": "The statement to inject into the Masking Engine logs."
          },
          "logLevel": {
            "type": "string",
            "description": "The log level at which to inject the log statement.",
            "enum": [
              "DEBUG",
              "ERROR",
              "INFO",
              "WARN"
            ]
          }
        },
        "example": {
          "logStatement": "This is a test.",
          "logLevel": "ERROR"
        }
      },
      "LogStatementList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/LogPageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "Login": {
        "required": [
          "password",
          "username"
        ],
        "type": "object",
        "properties": {
          "username": {
            "maxLength": 255,
            "type": "string",
            "description": "The username for logging into the Masking Engine."
          },
          "password": {
            "maxLength": 255,
            "type": "string",
            "description": "The password for logging into the Masking Engine.",
            "x-is-sensitive": true
          }
        },
        "example": {
          "username": "maskinguser",
          "password": "secret123"
        }
      },
      "LoginResponse": {
        "type": "object",
        "properties": {
          "Authorization": {
            "type": "string",
            "description": "The Authorization token to be provided in the headers of subsequent endpoint calls. Note that the timeout for the Authorization token is controlled by the 'API_AUTHORIZATION_TIMEOUT' property."
          }
        },
        "example": {
          "Authorization": "415aac5d-SOME-RANDOM-STRING-af6cf70dc49e"
        }
      },
      "LongIdentifier": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ObjectIdentifier"
          },
          {
            "required": [
              "id"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "format": "int64"
              }
            }
          }
        ]
      },
      "MainframeDatasetConnector": {
        "required": [
          "connectionInfo",
          "connectorName",
          "environmentId"
        ],
        "type": "object",
        "properties": {
          "mainframeDatasetConnectorId": {
            "type": "integer",
            "description": "The ID number of the Mainframe Dataset connector. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "connectorName": {
            "maxLength": 45,
            "type": "string",
            "description": "The name of the Mainframe Dataset connector."
          },
          "environmentId": {
            "type": "integer",
            "description": "The ID number of the environment that the Mainframe Dataset connector is in. Once the Mainframe Dataset connector is created, this field cannot be changed.",
            "format": "int32"
          },
          "connectionInfo": {
            "$ref": "#/components/schemas/ConnectionInfo"
          },
          "authPresent": {
            "type": "string",
            "description": "Denotes whether authentication is present or not for this connector, UI only field",
            "readOnly": true
          }
        },
        "example": {
          "connectorName": "mainframe_dataset_connector_via_sftp",
          "environmentId": 123,
          "connectionInfo": {
            "connectionMode": "SFTP",
            "path": "/path/to/files",
            "host": "host123.server.com",
            "loginName": "ftpuser",
            "port": 23456,
            "sshKey": "ssh_host_rsa_key",
            "userDirIsRoot": false
          }
        }
      },
      "MainframeDatasetConnectorList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainframeDatasetConnector"
            }
          }
        }
      },
      "MainframeDatasetFieldDetails": {
        "type": "object",
        "properties": {
          "mainframeDatasetFieldMetadataId": {
            "type": "integer",
            "description": "The ID number of the Mainframe Dataset field metadata. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "mainframeDatasetFormatId": {
            "type": "integer",
            "description": "The ID number of the Mainframe Dataset format that defines this Mainframe Dataset field.",
            "format": "int32",
            "readOnly": true
          },
          "mainframeDatasetRecordTypeId": {
            "type": "integer",
            "description": "The ID number of the Mainframe Dataset record type that defines this Mainframe Dataset field.",
            "format": "int32",
            "readOnly": true
          },
          "fieldName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the Mainframe Dataset field, as determined by the associated Mainframe Dataset format.",
            "readOnly": true
          },
          "algorithmName": {
            "maxLength": 500,
            "type": "string",
            "description": "The name of the algorithm assigned to this Mainframe Dataset field. Mainframe Dataset fields that are unmasked should have this property unset, in addition to having 'domainName' unset. If this field is set, then the 'domainName' must also be specified."
          },
          "algorithmFieldId": {
            "type": "integer",
            "description": "The ID number of the algorithm field that is associated with this column.",
            "format": "int64"
          },
          "algorithmFieldName": {
            "type": "string",
            "description": "The name of the algorithm field that is associated with this column.",
            "readOnly": true
          },
          "algorithmGroupNo": {
            "type": "integer",
            "description": "The group number of algorithm to identify a set of columns associated with one instance of algorithm.",
            "format": "int64"
          },
          "domainName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the domain assigned to this Mainframe Dataset field. Mainframe Dataset fields that are left unmasked should have this property unset. If the 'domainName' is set, but the 'algorithmName' is unset, then the default algorithm corresponding to the 'domainName' will be used."
          },
          "dateFormat": {
            "maxLength": 50,
            "type": "string",
            "description": "The date format of the date assigned to this Mainframe Dataset field."
          },
          "isMasked": {
            "type": "boolean",
            "description": "This field indicates whether or not a Mainframe Dataset field is being masked. This field is assigned by the Masking Engine to true or false based on whether the Mainframe Dataset field is assigned an algorithm and domain.",
            "readOnly": true
          },
          "isProfilerWritable": {
            "type": "boolean",
            "description": "This field indicates whether or not a Mainframe Dataset field (e.g. algorithm or domain assignment) may be modified during the execution of a profile job when there is a profiling match.",
            "default": false
          },
          "parentId": {
            "type": "integer",
            "description": "The ID number of the parent field of Mainframe Dataset field.",
            "format": "int32",
            "readOnly": true
          },
          "hasChild": {
            "type": "boolean",
            "description": "This field indicates whether Mainframe Dataset field has child or not.",
            "readOnly": true
          },
          "redefines": {
            "type": "string",
            "description": "The field name which is being redefined.",
            "readOnly": true
          },
          "redefineCondition": {
            "type": "string",
            "description": "The 'redefine condition' for the record type.",
            "readOnly": true
          },
          "type": {
            "type": "string",
            "description": "The type of the field identified. It can be REDEF or REDEFINED based on Redefines.",
            "readOnly": true
          }
        },
        "example": {
          "algorithmName": "USCitiesLookup",
          "domainName": "CITY"
        }
      },
      "MainframeDatasetFieldDetailsList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainframeDatasetFieldDetails"
            }
          }
        }
      },
      "MainframeDatasetFieldMetadata": {
        "type": "object",
        "properties": {
          "mainframeDatasetFieldMetadataId": {
            "type": "integer",
            "description": "The ID number of the Mainframe Dataset field metadata. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "mainframeDatasetFormatId": {
            "type": "integer",
            "description": "The ID number of the Mainframe Dataset format that defines this Mainframe Dataset field.",
            "format": "int32",
            "readOnly": true
          },
          "fieldName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the Mainframe Dataset field, as determined by the associated Mainframe Dataset format.",
            "readOnly": true
          },
          "algorithmName": {
            "maxLength": 500,
            "type": "string",
            "description": "The name of the algorithm assigned to this Mainframe Dataset field. Mainframe Dataset fields that are unmasked should have this property unset, in addition to having 'domainName' unset. If this field is set, then the 'domainName' must also be specified."
          },
          "algorithmFieldId": {
            "type": "integer",
            "description": "The ID number of the algorithm field that is associated with this column.",
            "format": "int64"
          },
          "algorithmGroupNo": {
            "type": "integer",
            "description": "The group number of algorithm to identify a set of columns associated with one instance of algorithm.",
            "format": "int64"
          },
          "domainName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the domain assigned to this Mainframe Dataset field. Mainframe Dataset fields that are left unmasked should have this property unset. If the 'domainName' is set, but the 'algorithmName' is unset, then the default algorithm corresponding to the 'domainName' will be used."
          },
          "dateFormat": {
            "maxLength": 50,
            "type": "string",
            "description": "The date format of the date assigned to this Mainframe Dataset field."
          },
          "isMasked": {
            "type": "boolean",
            "description": "This field indicates whether or not a Mainframe Dataset field is being masked. This field is assigned by the Masking Engine to true or false based on whether the Mainframe Dataset field is assigned an algorithm and domain.",
            "readOnly": true
          },
          "isProfilerWritable": {
            "type": "boolean",
            "description": "This field indicates whether or not a Mainframe Dataset field (e.g. algorithm or domain assignment) may be modified during the execution of a profile job when there is a profiling match.",
            "default": false
          },
          "parentId": {
            "type": "integer",
            "description": "The ID number of the parent field of Mainframe Dataset field.",
            "format": "int32",
            "readOnly": true
          }
        },
        "example": {
          "algorithmName": "FirstNameLookup",
          "domainName": "FIRST_NAME"
        }
      },
      "MainframeDatasetFieldMetadataList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainframeDatasetFieldMetadata"
            }
          }
        }
      },
      "MainframeDatasetFormat": {
        "type": "object",
        "properties": {
          "mainframeDatasetFormatId": {
            "type": "integer",
            "description": "The ID number of the Mainframe Dataset format. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "mainframeDatasetFormatName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the Mainframe Dataset format.",
            "readOnly": true
          },
          "mainframeDatasetFormatDownloadId": {
            "type": "string",
            "description": "The ID for downloading the Mainframe Dataset format. This is used to download the VSAM/copybook file format.",
            "readOnly": true
          }
        },
        "example": {
          "mainframeDatasetFormatId": "3",
          "mainframeDatasetFormatName": "MainframeDatasetFormat.txt"
        }
      },
      "MainframeDatasetFormatList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainframeDatasetFormat"
            }
          }
        }
      },
      "MainframeDatasetFormatCopy": {
        "required": [
          "mainframeDatasetFormatName"
        ],
        "type": "object",
        "properties": {
          "mainframeDatasetFormatName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the new mainframe dataset format."
          },
          "ignoreMaskingAssignments": {
            "type": "boolean",
            "description": "Flag to ignore copying masking assignments. If true, masking assignments will not be copied.",
            "default": false
          }
        },
        "example": {
          "mainframeDatasetFormatName": "",
          "ignoreMaskingAssignments": false
        }
      },
      "MainframeDatasetFormatMetadata": {
        "type": "object",
        "properties": {
          "mainframeDatasetMetadataId": {
            "type": "integer",
            "description": "The ID of the Mainframe Dataset metadata. This field is set by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "fileName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the Mainframe Dataset metadata. This name must match the name of a file in the ruleset it is created on. This name must be unique for the given ruleset; in other words, the same file cannot be added to a ruleset more than once."
          },
          "rulesetId": {
            "type": "integer",
            "description": "The ID of the ruleset to create the Mainframe Dataset metadata on.",
            "format": "int32"
          },
          "mainframeDatasetFormatId": {
            "type": "integer",
            "description": "The ID of the Mainframe Dataset format corresponding to this Mainframe Dataset metadata. It is used to determine the fields for this file.",
            "format": "int32"
          },
          "mainframeDatasetFormatName": {
            "type": "string",
            "description": "The name of the Mainframe Dataset format corresponding to this Mainframe Dataset metadata. It is used to determine the fields for this file."
          },
          "recordFormat": {
            "type": "string",
            "description": "The record format type for the mainframe data set. Note that this enum corresponds to the Variable Length checkbox in the UI.",
            "enum": [
              "FIXED_BLOCKED",
              "VARIABLE_BLOCKED"
            ],
            "default": "FIXED_BLOCKED"
          },
          "nameIsRegularExpression": {
            "type": "boolean",
            "description": "Whether or not this file name represents a regular expression.",
            "default": false
          }
        },
        "example": {
          "fileName": "file.dat",
          "rulesetId": 1,
          "mainframeDatasetFormatId": 2,
          "mainframeDatasetFormatName": "MainframeDatasetFormat.txt"
        }
      },
      "MainframeDatasetFormatMetadataList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainframeDatasetFormatMetadata"
            }
          }
        }
      },
      "MainframeDatasetMetadata": {
        "required": [
          "fileName",
          "rulesetId"
        ],
        "type": "object",
        "properties": {
          "mainframeDatasetMetadataId": {
            "type": "integer",
            "description": "The ID of the Mainframe Dataset metadata. This field is set by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "fileName": {
            "maxLength": 240,
            "type": "string",
            "description": "The name of the Mainframe Dataset metadata. This name must match the name of a file in the ruleset it is created on. This name must be unique for the given ruleset; in other words, the same file cannot be added to a ruleset more than once."
          },
          "rulesetId": {
            "type": "integer",
            "description": "The ID of the ruleset to create the Mainframe Dataset metadata on.",
            "format": "int32"
          },
          "mainframeDatasetFormatId": {
            "type": "integer",
            "description": "The ID of the Mainframe Dataset format corresponding to this Mainframe Dataset metadata. It is used to determine the fields for this file. This field is required.",
            "format": "int32"
          },
          "recordFormat": {
            "type": "string",
            "description": "The record format type for the mainframe data set. Note that this enum corresponds to the Variable Length checkbox in the UI.",
            "enum": [
              "FIXED_BLOCKED",
              "VARIABLE_BLOCKED"
            ],
            "default": "FIXED_BLOCKED"
          },
          "nameIsRegularExpression": {
            "type": "boolean",
            "description": "Whether or not this file name represents a regular expression.",
            "default": false
          }
        },
        "example": {
          "fileName": "file.dat",
          "rulesetId": 1,
          "mainframeDatasetFormatId": 2
        }
      },
      "MainframeDatasetMetadataList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainframeDatasetMetadata"
            }
          }
        }
      },
      "MainframeDatasetMetadataBulkInput": {
        "required": [
          "mainframeDatasetMetadata"
        ],
        "type": "object",
        "properties": {
          "mainframeDatasetMetadata": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainframeDatasetMetadata"
            }
          }
        }
      },
      "MainframeDatasetRecordType": {
        "type": "object",
        "properties": {
          "mainframeDatasetRecordTypeId": {
            "type": "integer",
            "description": "The ID number of the mainframe dataset record type. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "mainframeDatasetFormatId": {
            "type": "integer",
            "description": "The ID number of the mainframe dataset format this mainframe dataset record type refers to.",
            "format": "int32",
            "readOnly": true
          },
          "mainframeDatasetRecordTypeName": {
            "maxLength": 255,
            "type": "string",
            "description": "The Name of the mainframe dataset record type.",
            "readOnly": true
          },
          "redefineCondition": {
            "type": "string",
            "description": "The 'redefine condition' for the record type."
          },
          "type": {
            "type": "string",
            "description": "The type of the field identified with mainframeDatasetFieldMetadataId.",
            "enum": [
              "REDEFINED",
              "REDEFINES"
            ]
          },
          "mainframeDatasetFieldMetadataId": {
            "type": "integer",
            "description": "The ID number of the redefined or redefines mainframe dataset field metadata id to which this mainframe record type is associated.",
            "format": "int32",
            "readOnly": true
          }
        },
        "example": {
          "redefineCondition": "[EMP_TYPE]='P'"
        }
      },
      "MainframeDatasetRecordTypeList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainframeDatasetRecordType"
            }
          }
        }
      },
      "MainframeDatasetRuleset": {
        "required": [
          "mainframeDatasetConnectorId",
          "rulesetName"
        ],
        "type": "object",
        "properties": {
          "mainframeDatasetRulesetId": {
            "type": "integer",
            "description": "The ID of the Mainframe Dataset ruleset. This field is set by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "rulesetName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the ruleset. This must be unique within an environment."
          },
          "mainframeDatasetConnectorId": {
            "type": "integer",
            "description": "The ID of the Mainframe Dataset Connector that this ruleset corresponds to. Note that the ruleset will be created on the same environment as its connector.",
            "format": "int32"
          }
        },
        "example": {
          "rulesetName": "Rule123",
          "mainframeDatasetConnectorId": 1
        }
      },
      "MainframeDatasetRulesetList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainframeDatasetRuleset"
            }
          }
        }
      },
      "MainframeDatasetRulesetCopy": {
        "required": [
          "newRulesetName"
        ],
        "type": "object",
        "properties": {
          "newRulesetName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the ruleset. This must be unique within an environment."
          }
        },
        "example": {
          "newRulesetName": "Rule123"
        }
      },
      "MappingAlgorithmStats": {
        "required": [
          "algorithmName",
          "totalMappings",
          "unusedMappings"
        ],
        "type": "object",
        "properties": {
          "algorithmName": {
            "maxLength": 201,
            "type": "string",
            "description": "The name of the algorithm.",
            "readOnly": true
          },
          "totalMappings": {
            "type": "integer",
            "description": "The total number of mappings assigned to this mapping algorithm.",
            "format": "int32",
            "readOnly": true
          },
          "unusedMappings": {
            "type": "integer",
            "description": "The total number of unused mappings assigned to this mapping algorithm.",
            "format": "int32",
            "readOnly": true
          }
        },
        "example": {
          "algorithmName": "TestMapping",
          "totalMappings": 375,
          "unusedMappings": 42
        }
      },
      "MappingExtension": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AlgorithmExtension"
          },
          {
            "type": "object",
            "properties": {
              "fileReferenceId": {
                "type": "string",
                "description": "The reference URI value returned from the endpoint for uploading files to the Masking Engine. The file should contain a newline separated list of mapping values."
              },
              "ignoreCharacters": {
                "type": "array",
                "description": "The integer ASCII values of characters to ignore in the column data to map",
                "items": {
                  "maximum": 126,
                  "minimum": 32,
                  "type": "integer"
                }
              }
            }
          }
        ]
      },
      "MappletExtension": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AlgorithmExtension"
          },
          {
            "type": "object",
            "properties": {
              "mappletInput": {
                "maxLength": 500,
                "type": "string",
                "description": "The name of the input variable for the custom algorithm"
              },
              "mappletOutput": {
                "maxLength": 500,
                "type": "string",
                "description": "The name of the output variable for the custom algorithm"
              },
              "fileName": {
                "type": "string",
                "description": "The name of the uploaded file.",
                "readOnly": true
              },
              "fileReferenceId": {
                "type": "string",
                "description": "The reference URI value returned from the endpoint for uploading files to the Masking Engine."
              },
              "fileDownloadId": {
                "type": "string",
                "description": "This value is returned on GET. It can be fed into the file-downloads endpoint.",
                "readOnly": true
              }
            }
          }
        ]
      },
      "MaskingJob": {
        "required": [
          "jobName",
          "rulesetId"
        ],
        "type": "object",
        "properties": {
          "maskingJobId": {
            "type": "integer",
            "description": "The ID number of the masking job. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "jobName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the masking job. Once the masking job is created, this field cannot be changed."
          },
          "rulesetId": {
            "type": "integer",
            "description": "The ID of the ruleset that this masking job is based on. Once the masking job is created, the underlying environment that is inferred from the ruleset will be unchangeable. That is, the job can only be updated to reference a ruleset that is in the same environment as the environment of the original ruleset.",
            "format": "int32"
          },
          "rulesetType": {
            "type": "string",
            "description": "The type of the ruleset that this masking job is assigned to.",
            "readOnly": true
          },
          "createdBy": {
            "maxLength": 255,
            "type": "string",
            "description": "The user that created the masking job. This field is auto-generated by the Masking Engine.",
            "readOnly": true
          },
          "createdTime": {
            "type": "string",
            "description": "The time when the masking job was created. This field is auto-generated by the Masking Engine.",
            "format": "date-time",
            "readOnly": true
          },
          "email": {
            "type": "string",
            "description": "The email address to send job status notifications to; note that the SMTP settings must be configured first to receive notifications."
          },
          "feedbackSize": {
            "minimum": 1,
            "type": "integer",
            "description": "The granularity with which the Masking Engine provides updates on the progress of the masking job. For instance, a feedbackSize of 50000 results in log updates whenever 50000 rows are processed during the masking phase.",
            "format": "int32"
          },
          "jobDescription": {
            "maxLength": 255,
            "type": "string",
            "description": "A description of the job."
          },
          "maxMemory": {
            "type": "integer",
            "description": "The maximum amount of memory, in MB, that the masking job can consume during execution.",
            "format": "int32"
          },
          "minMemory": {
            "type": "integer",
            "description": "The minimum amount of memory, in MB, that the masking job can consume during execution.",
            "format": "int32"
          },
          "multiTenant": {
            "type": "boolean",
            "description": "This field determines whether the masking job, after creation, can be executed using a connector that is different from the underlying connector associated with the ruleset that this masking job is based on.",
            "default": false
          },
          "numInputStreams": {
            "minimum": 1,
            "type": "integer",
            "description": "This field controls the amount of parallelism that the masking job uses to extract out the data to be masked. For instance, when masking a database, specifying 5 input streams results in the masking job reading up to 5 database tables in parallel and then masking those 5 streams of data in parallel. The higher the value of this field, the more potential parallelism there will be in the job, but the masking job will consume more memory. If the number of input streams exceeds the number of units being masked (e.g. tables or files), then the excess streams will do nothing.",
            "format": "int32",
            "default": 1
          },
          "onTheFlyMasking": {
            "type": "boolean",
            "description": "This field determines whether the masking job will be performed InPlace or OnTheFly. The process for InPlace masking is to read out the data to be masked, mask the data, and then load the masked data back into the original data source. The process for OnTheFly masking is to read out the data to be masked, mask the data, and then load the masked data back into a different data source. When masking OnTheFly, the field 'onTheFlyMaskingSource' must be provided.",
            "default": false
          },
          "databaseMaskingOptions": {
            "$ref": "#/components/schemas/DatabaseMaskingOptions"
          },
          "onTheFlyMaskingSource": {
            "$ref": "#/components/schemas/OnTheFlyMaskingSource"
          },
          "failImmediately": {
            "type": "boolean",
            "description": "This field determines whether the masking job will fail immediately or delay failure until job completion when a masking algorithm fails to mask its data. Setting this value to 'false' provides a means for a user to see all cumulative masking errors before the job is marked as failed.",
            "default": false
          },
          "enabledTasks": {
            "type": "array",
            "description": "This field determines what tasks to perform before/after a job from a set of available driver support tasks as indicated by the chosen target ruleset/connector.",
            "items": {
              "$ref": "#/components/schemas/JobTask"
            }
          },
          "streamRowLimit": {
            "minimum": -1,
            "type": "integer",
            "description": "This value constrains the total number of rows that may enter the job for each masking stream. A setting of 0 means unlimited. A value of -1 selects the default value. The default value for this setting varies by job type. The minimum explicit value allowed is 20"
          },
          "nonconformantDataHandling": {
            "type": "string",
            "description": "Job-level handling for non-conforming data. When set, this overrides the global DefaultNonConformantDataHandling; otherwise the global ApplicationSetting is used",
            "enum": [
              "FAIL",
              "DONT_MASK",
              "NULLIFY",
              "UNSPECIFIED"
            ]
          }
        },
        "example": {
          "jobName": "some_masking_job",
          "rulesetId": 7,
          "jobDescription": "This example illustrates a MaskingJob with just a handful of the possible fields set. It is meant to exemplify a simple JSON body that can be passed to the endpoint to create a MaskingJob.",
          "feedbackSize": 100000,
          "onTheFlyMasking": false,
          "databaseMaskingOptions": {
            "batchUpdate": true,
            "commitSize": 20000,
            "dropConstraints": true,
            "prescript": {
              "name": "my_prescript.sql",
              "contents": "ALTER TABLE table_name DROP COLUMN column_name;"
            },
            "postscript": {
              "name": "my_postscript.sql",
              "contents": "ALTER TABLE table_name ADD column_name VARCHAR(255);"
            }
          },
          "nonconformantDataHandling": "FAIL"
        }
      },
      "MaskingJobList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MaskingJob"
            }
          }
        }
      },
      "MaskingJobScript": {
        "required": [
          "contents",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the job SQL script, e.g. 'prescript.sql' or 'postscript.sql'"
          },
          "contents": {
            "type": "string",
            "description": "The file contents of the job SQL script."
          }
        }
      },
      "MinMaxExtension": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AlgorithmExtension"
          },
          {
            "type": "object",
            "properties": {
              "minValue": {
                "minimum": 0,
                "type": "integer",
                "description": "The minimum value for a Number range used in conjunction with maxValue. This field cannot be combined with minDate or maxDate.",
                "format": "int32"
              },
              "maxValue": {
                "minimum": 1,
                "type": "integer",
                "description": "The maximum value for a Number range used in conjunction with and must be greater than minValue. This field cannot be combined with minDate or maxDate.",
                "format": "int32"
              },
              "minDate": {
                "type": "string",
                "description": "The minimum value for a Date range used in conjunction with maxDate. The Date must be specified in one of the following formats according to RFC 3339 Section 5.6: \"yyyy-MM-dd\", \"yyyy-MM-dd'T'HH:mm:ss.SSSZ\", \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", or \"EEE, dd MMM yyyy HH:mm:ss zzz\". If a timezone is not specified, the Date will be interpreted as UTC. This field cannot be combined with minValue or maxValue.",
                "format": "date"
              },
              "maxDate": {
                "type": "string",
                "description": "The maximum value for a Date range used in conjunction with and must be greater than minDate. The Date must be specified in one of the following formats according to RFC 3339 Section 5.6: \"yyyy-MM-dd\", \"yyyy-MM-dd'T'HH:mm:ss.SSSZ\", \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", or \"EEE, dd MMM yyyy HH:mm:ss zzz\". If a timezone is not specified, the Date will be interpreted as UTC. This field cannot be combined with minValue or maxValue.",
                "format": "date"
              },
              "outOfRangeDefaultValue": {
                "maxLength": 255,
                "type": "string",
                "description": "The default replacement value for any value that is out-of-range."
              }
            }
          }
        ]
      },
      "MonitorJobsInformation": {
        "type": "object",
        "properties": {
          "noOfWaitingJob": {
            "type": "integer",
            "description": "The total no of jobs in queue.",
            "format": "int32",
            "readOnly": true
          },
          "noOfRunningJob": {
            "type": "integer",
            "description": "The total no of jobs currently running.",
            "format": "int32",
            "readOnly": true
          },
          "maxRunningJobsCount": {
            "type": "integer",
            "description": "The total no of simultaneous jobs runs possible.",
            "format": "int32",
            "readOnly": true
          },
          "memoryInUseForJobs": {
            "type": "integer",
            "description": "The total memory size in MB currently being used by running jobs.",
            "format": "int32",
            "readOnly": true
          },
          "totalAllocatedMemoryForJobs": {
            "type": "integer",
            "description": "The total memory size in MB allocated for running jobs on the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "defaultStreamsProfiling": {
            "type": "integer",
            "description": "The default number of profiling streams on the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "defaultStreamsMasking": {
            "type": "integer",
            "description": "The default number of masking streams on the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "defaultUpdateThreads": {
            "type": "integer",
            "description": "The default number of update threads on the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "defaultProfileSetName": {
            "type": "string",
            "description": "The default ASDD profile-set name for a new profiling job on the Masking Engine.",
            "readOnly": true
          }
        },
        "example": {
          "noOfWaitingJob": 3,
          "noOfRunningJob": 5,
          "maxRunningJobsCount": 5,
          "defaultStreamsProfiling": 2,
          "defaultStreamsMasking": 2,
          "defaultUpdateThreads": 2,
          "defaultProfileSetName": "ASDD Standard",
          "memoryInUseForJobs": "1720",
          "totalAllocatedMemoryForJobs": "20480"
        }
      },
      "MonitorTask": {
        "required": [
          "taskId",
          "taskType"
        ],
        "type": "object",
        "properties": {
          "taskId": {
            "type": "integer",
            "description": "The ID of the monitorable Task. This field will be generated by the Masking Engine, correspond to taskType ",
            "format": "int32",
            "readOnly": true
          },
          "taskType": {
            "type": "string",
            "description": "The type of async task to monitor.",
            "readOnly": true,
            "enum": [
              "EXECUTIONS",
              "ASYNC_TASK"
            ]
          },
          "progression": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskEvents"
            }
          }
        },
        "example": {
          "taskId": 123,
          "taskType": "EXECUTIONS",
          "progression": [
            {
              "event": "event1",
              "order": 1,
              "status": "SUCCEEDED"
            },
            {
              "event": "event2",
              "order": 2,
              "status": "SKIPPED"
            },
            {
              "event": "event3",
              "order": 3,
              "status": "RUNNING"
            },
            {
              "event": "event4",
              "order": 4,
              "status": "QUEUED"
            },
            {
              "event": "event5",
              "order": 5,
              "status": "QUEUED"
            }
          ]
        }
      },
      "MonitorTaskList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MonitorTask"
            }
          }
        }
      },
      "MountInformation": {
        "required": [
          "hostAddress",
          "mountName",
          "mountPath",
          "type"
        ],
        "type": "object",
        "properties": {
          "mountId": {
            "type": "integer",
            "description": "The ID number of the mount. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "mountName": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "The name of the mount. This field must be unique."
          },
          "hostAddress": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "The host address of the server. This field cannot be changed."
          },
          "mountPath": {
            "maxLength": 4096,
            "minLength": 1,
            "type": "string",
            "description": "The path to the directory on the filesystem to mount. This field cannot be changed."
          },
          "type": {
            "type": "string",
            "description": "The type of filesystem. This field cannot be changed.",
            "enum": [
              "CIFS",
              "NFS3",
              "NFS4",
              "EXTERNAL"
            ]
          },
          "connectOnStartup": {
            "type": "boolean",
            "description": "This field determines whether this filesystem will be automatically connected (mounted) on startup of the masking engine. Note that all mounts will be disconnected on shutdown of the masking engine.",
            "default": true
          },
          "options": {
            "maxLength": 4096,
            "type": "string",
            "description": "The options for mount. The endpoint will return all default options and user specified options.",
            "x-is-sensitive": true
          },
          "status": {
            "type": "string",
            "description": "The connection status for mount. This field is automatically managed by the masking engine.",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "DISCONNECTED"
            ]
          },
          "mountDevice": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "The mounted device IP/URI and the local path on that device. Automatically auto-discovered in containerized masking environment. The field is empty when running in the Delphix Virtual Appliance. This field cannot be changed.",
            "readOnly": true
          },
          "localMountPath": {
            "maxLength": 4096,
            "minLength": 1,
            "type": "string",
            "description": "The path to the mounted local directory on the containerized masking engine. Automatically auto-discovered in containerized masking environment. The field is empty when running in the Delphix Virtual Appliance. This field cannot be changed.",
            "readOnly": true
          }
        },
        "example": {
          "mountName": "my_mount",
          "hostAddress": "some.host.com",
          "mountPath": "/path/to/my/mount",
          "type": "NFS4",
          "options": "comma,delimited,options,list",
          "connectOnStartup": true
        }
      },
      "MountInformationList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MountInformation"
            }
          }
        }
      },
      "NonAdminProperties": {
        "required": [
          "roleId"
        ],
        "type": "object",
        "properties": {
          "roleId": {
            "type": "integer",
            "description": "The ID of the role assigned to this User.",
            "format": "int32"
          },
          "environmentIds": {
            "type": "array",
            "description": "The list of ID numbers that correspond to the environments that this User has access to.",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        },
        "example": {
          "roleId": 1,
          "environmentIds": [
            1,
            3,
            7
          ]
        }
      },
      "NonConformantDataSamples": {
        "type": "object",
        "properties": {
          "dataSampleId": {
            "type": "integer",
            "description": "The ID of the non-conformant data sample.",
            "format": "int64",
            "readOnly": true
          },
          "executionEventId": {
            "type": "integer",
            "description": "The ID of the execution event this sample is associated with.",
            "format": "int64",
            "readOnly": true
          },
          "dataSample": {
            "type": "string",
            "description": "The redacted value of the non-conformant field data that could not be masked by the assigned algorithm.",
            "readOnly": true
          },
          "count": {
            "type": "integer",
            "description": "The approximate number of times this data pattern was encountered.",
            "format": "int64",
            "readOnly": true
          }
        },
        "example": {
          "dataSampleId": 1,
          "executionEventId": 1,
          "dataSample": "NNNNNNNNNN",
          "count": 1
        }
      },
      "OAuth2Ready": {
        "required": [
          "isOAuth2ReadyWithEmailAddressMatching",
          "isOAuth2ReadyWithNameMatching",
          "isOAuth2ReadyWithPrincipalMatching"
        ],
        "type": "object",
        "properties": {
          "isOAuth2ReadyWithNameMatching": {
            "type": "boolean",
            "description": "Whether or not the Masking Engine is ready to enable OAuth2 with user matching based on the name property."
          },
          "isOAuth2ReadyWithEmailAddressMatching": {
            "type": "boolean",
            "description": "Whether or not the Masking Engine is ready to enable OAuth2 with user matching based on the email_address property."
          },
          "isOAuth2ReadyWithPrincipalMatching": {
            "type": "boolean",
            "description": "Whether or not the Masking Engine is ready to enable OAuth2 with user matching based on the principal property."
          }
        },
        "example": {
          "isOAuth2ReadyWithNameMatching": false,
          "isOAuth2ReadyWithEmailAddressMatching": false,
          "isOAuth2ReadyWithPrincipalMatching": false
        }
      },
      "ObjectIdentifier": {
        "type": "object",
        "discriminator": {
          "propertyName": "objectIdentifier"
        }
      },
      "OnTheFlyMaskingSource": {
        "required": [
          "connectorId"
        ],
        "type": "object",
        "properties": {
          "connectorId": {
            "type": "integer",
            "description": "The ID number of the source connector for the OnTheFly masking job.",
            "format": "int32"
          },
          "connectorType": {
            "type": "string",
            "description": "The type of the source connector for the OnTheFly masking job.",
            "enum": [
              "DATABASE",
              "FILE",
              "VSAM"
            ]
          }
        }
      },
      "PageInfo": {
        "type": "object",
        "properties": {
          "numberOnPage": {
            "type": "integer",
            "description": "The number of items on this page. This should always match the page size unless it is the last page.",
            "format": "int64"
          },
          "total": {
            "type": "integer",
            "description": "The total number of items",
            "format": "int64"
          }
        }
      },
      "PasswordVault": {
        "type": "object",
        "properties": {
          "passwordVaultId": {
            "type": "integer",
            "description": "The ID of the password vault. This field is set by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "name": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the password vault. This must be unique across all password vaults on the engine."
          },
          "vaultType": {
            "type": "string",
            "description": "The type of password vault. Currently, HASHICORP, CYBERARK and GCP are supported.",
            "enum": [
              "CYBERARK",
              "HASHICORP",
              "GCP",
              "AZURE"
            ],
            "default": "HASHICORP"
          },
          "configJson": {
            "type": "object",
            "properties": {},
            "description": "The configuration properties used to connect to the password vault.",
            "x-is-sensitive": true
          },
          "description": {
            "maxLength": 1024,
            "type": "string",
            "description": "The description of the password vault."
          }
        },
        "example": {
          "name": "SampleVault",
          "vaultType": "HASHICORP",
          "configJson": {
            "host": "12.345.678.90",
            "port": 8200,
            "namespace": "sample/child",
            "authType": "TOKEN",
            "token": "hvs.kvIT"
          },
          "description": "This password vault is used as an API example."
        }
      },
      "PasswordVaultList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PasswordVault"
            }
          }
        }
      },
      "Plugin": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PluginBase"
          },
          {
            "type": "object",
            "properties": {
              "originalFileName": {
                "type": "string",
                "description": "The original name of the plugin JAR file",
                "readOnly": true
              },
              "originalFileChecksum": {
                "type": "string",
                "description": "The hex string value of the SHA-256 hash of the plugin JAR file",
                "readOnly": true
              },
              "installDate": {
                "type": "string",
                "description": "Date and time when this plugin was installed",
                "format": "date-time",
                "readOnly": true
              },
              "installUser": {
                "type": "integer",
                "description": "The login ID of the user that installed this plugin",
                "format": "int32",
                "readOnly": true
              },
              "builtIn": {
                "type": "boolean",
                "description": "Whether this plugin was included with Delphix Engine software distribution",
                "readOnly": true
              },
              "pluginVersion": {
                "type": "string",
                "description": "The string version identifier of the plugin",
                "readOnly": true
              },
              "description": {
                "type": "string",
                "description": "The description of the plugin",
                "readOnly": true
              },
              "pluginObjects": {
                "type": "array",
                "description": "List of objects included in the plugin",
                "items": {
                  "$ref": "#/components/schemas/PluginObject"
                }
              }
            },
            "example": {
              "pluginId": 1,
              "pluginName": "myPlugin",
              "originalFileName": "algorithm.jar",
              "jarFingerprint": "dce2599f5ece9441a4b84194313245b65618490a47cead870c3327738decd052",
              "installDate": "2019-09-19T19:43:09.762+0000",
              "installUser": 5,
              "builtIn": false,
              "pluginVersion": "1.0.0-RELEASE",
              "algorithmNames": [
                "myAlgorithm1",
                "myAlgorithm2"
              ]
            }
          }
        ]
      },
      "PluginObject": {
        "type": "object",
        "properties": {
          "objectIdentifier": {
            "type": "string",
            "readOnly": true
          },
          "objectName": {
            "type": "string",
            "readOnly": true
          },
          "objectType": {
            "type": "string",
            "description": "The type of plugin object",
            "readOnly": true,
            "enum": [
              "ALGORITHM",
              "ALGORITHM_FRAMEWORK",
              "DRIVER_SUPPORT_TASK"
            ]
          }
        }
      },
      "PluginBase": {
        "type": "object",
        "properties": {
          "pluginId": {
            "type": "integer",
            "description": "The id of the plugin",
            "format": "int64",
            "readOnly": true
          },
          "pluginName": {
            "type": "string",
            "description": "The name of the plugin",
            "readOnly": true
          },
          "pluginAuthor": {
            "type": "string",
            "description": "The author of the plugin",
            "readOnly": true
          },
          "pluginType": {
            "type": "string",
            "description": "The type of plugin",
            "readOnly": true,
            "enum": [
              "EXTENDED_ALGORITHM",
              "DRIVER_SUPPORT"
            ]
          }
        },
        "example": {
          "pluginId": 1,
          "pluginName": "myPlugin",
          "pluginAuthor": "pluginAuthor",
          "pluginType": "EXTENDED_ALGORITHM"
        }
      },
      "Privilege": {
        "type": "object",
        "properties": {
          "copy": {
            "type": "boolean",
            "description": "This field indicates whether or not this privilege has the ability to copy the object it is applied to.",
            "default": false
          },
          "create": {
            "type": "boolean",
            "description": "This field indicates whether or not this privilege has the ability to create the object it is applied to.",
            "default": false
          },
          "delete": {
            "type": "boolean",
            "description": "This field indicates whether or not this privilege has the ability to delete the object it is applied to.",
            "default": false
          },
          "export": {
            "type": "boolean",
            "description": "This field indicates whether or not this privilege has the ability to export the object it is applied to.",
            "default": false
          },
          "import": {
            "type": "boolean",
            "description": "This field indicates whether or not this privilege has the ability to import the object it is applied to.",
            "default": false
          },
          "run": {
            "type": "boolean",
            "description": "This field indicates whether or not this privilege has the ability to run the object it is applied to.",
            "default": false
          },
          "update": {
            "type": "boolean",
            "description": "This field indicates whether or not this privilege has the ability to update the object it is applied to.",
            "default": false
          },
          "view": {
            "type": "boolean",
            "description": "This field indicates whether or not this privilege has the ability to view the object it is applied to.",
            "default": false
          }
        },
        "example": {
          "copy": true,
          "delete": true,
          "view": true
        }
      },
      "ProfileJob": {
        "required": [
          "jobName",
          "profileSetId",
          "rulesetId"
        ],
        "type": "object",
        "properties": {
          "profileJobId": {
            "type": "integer",
            "description": "The ID number of the profile job. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "jobName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the profile job. Once the profile job is created, this field cannot be changed."
          },
          "profileSetId": {
            "type": "integer",
            "description": "The ID number of the profile set to be used during the profiling phase.",
            "format": "int32"
          },
          "rulesetId": {
            "type": "integer",
            "description": "The ID of the ruleset that this profile job is targeting. Once the profile job is created, the underlying environment that is inferred from the ruleset will be unchangeable. That is, the job can only be updated to reference a ruleset that is in the same environment as the environment of the original ruleset.",
            "format": "int32"
          },
          "rulesetType": {
            "type": "string",
            "description": "The type of the ruleset that this profile job is assigned to.",
            "readOnly": true
          },
          "createdBy": {
            "maxLength": 255,
            "type": "string",
            "description": "The user that created the profile job. This field is auto-generated by the Masking Engine.",
            "readOnly": true
          },
          "createdTime": {
            "type": "string",
            "description": "The time when the profile job was created. This field is auto-generated by the Masking Engine.",
            "format": "date-time",
            "readOnly": true
          },
          "email": {
            "type": "string",
            "description": "The email address to send job status notifications to; note that the SMTP settings must be configured first to receive notifications."
          },
          "feedbackSize": {
            "minimum": 1,
            "type": "integer",
            "description": "The granularity with which the Masking Engine provides updates on the progress of the profile job. For instance, a feedbackSize of 50000 results in log updates whenever 50000 rows are processed during the profiling phase.",
            "format": "int32"
          },
          "jobDescription": {
            "maxLength": 255,
            "type": "string",
            "description": "A description of the job."
          },
          "maxMemory": {
            "type": "integer",
            "description": "The maximum amount of memory, in MB, that the profile job can consume during execution.",
            "format": "int32"
          },
          "minMemory": {
            "type": "integer",
            "description": "The minimum amount of memory, in MB, that the profile job can consume during execution.",
            "format": "int32"
          },
          "multiTenant": {
            "type": "boolean",
            "description": "This field determines whether the profile job, after creation, can be executed using a connector that is different from the underlying connector associated with the ruleset that this profile job is targeting.",
            "default": false
          },
          "numInputStreams": {
            "minimum": 1,
            "type": "integer",
            "description": "This field controls the amount of parallelism that the profile job uses to extract out the data to be profiled. For instance, when profiling a database, specifying 5 input streams results in the profile job reading up to 5 database tables in parallel and then profiling those 5 streams of data in parallel. The higher the value of this field, the more potential parallelism there will be in the job, but the profile job will consume more memory. If the number of input streams exceeds the number of units being profiled (e.g. tables or files), then the excess streams will do nothing.",
            "format": "int32",
            "default": 1
          },
          "multipleProfilerCheck": {
            "type": "boolean",
            "description": "This field determines whether the profiler stops after it flags a field as sensitive or if it continues to scan for more sensitive patterns.",
            "default": false
          },
          "resetProfilingAssignments": {
            "type": "boolean",
            "description": "This field determines whether the inventory domain assignments for the previous profiling execution needs to be cleared before the current execution of an ASDD job (defaults to 'false'). This field has no effect on legacy profiling and is always 'true'.",
            "nullable": true
          }
        },
        "example": {
          "jobName": "minimal_profile_job",
          "profileSetId": 2,
          "rulesetId": 7,
          "jobDescription": "This example value illustrates the minimal set of fields required to create a ProfileJob. All other fields have default values. Refer to the extensive documentation on the ProfileJob object for reference on the other, optional fields."
        }
      },
      "ProfileJobList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileJob"
            }
          }
        }
      },
      "ProfileResultDatabase": {
        "type": "object",
        "properties": {
          "columnMetadataId": {
            "type": "integer",
            "description": "The ID number of the column metadata. This field is auto-generated by the Masking Engine.",
            "format": "int64",
            "readOnly": true
          },
          "columnName": {
            "type": "string",
            "description": "The name of the column.",
            "readOnly": true
          },
          "tableName": {
            "type": "string",
            "description": "The name of the table.",
            "readOnly": true
          },
          "domainName": {
            "type": "string",
            "description": "The name of the domain assigned to the column.",
            "readOnly": true
          },
          "algorithmName": {
            "type": "string",
            "description": "The name of the algorithm assigned to the column.",
            "readOnly": true
          },
          "dataType": {
            "type": "string",
            "description": "The data type of the column.",
            "readOnly": true
          },
          "confidence": {
            "type": "integer",
            "description": "The confidence level.",
            "format": "int32",
            "readOnly": true
          },
          "isProfilerWritable": {
            "type": "boolean",
            "description": "This field indicates whether or not a column's fields (e.g. algorithm or domain assignment) may be modified during the execution of a profile job when there is a profiling match.",
            "readOnly": true
          }
        },
        "example": {
          "columnMetadataId": 1,
          "columnName": "first_name",
          "tableName": "test_table",
          "domainName": "FirstName",
          "algorithmName": "FirstNameAlgorithm",
          "dataType": "String",
          "confidence": 100,
          "isProfilerWritable": true
        }
      },
      "ProfileResultDatabaseList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileResultDatabase"
            }
          }
        }
      },
      "ProfileResultFile": {
        "type": "object",
        "properties": {
          "fieldMetadataId": {
            "type": "integer",
            "description": "The ID number of the field metadata. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "fieldName": {
            "type": "string",
            "description": "The name of the file field.",
            "readOnly": true
          },
          "fileName": {
            "type": "string",
            "description": "The name of the file.",
            "readOnly": true
          },
          "domainName": {
            "type": "string",
            "description": "The name of the domain assigned to the field.",
            "readOnly": true
          },
          "algorithmName": {
            "type": "string",
            "description": "The name of the algorithm assigned to the field.",
            "readOnly": true
          },
          "confidence": {
            "type": "integer",
            "description": "The confidence level.",
            "format": "int32",
            "readOnly": true
          },
          "isProfilerWritable": {
            "type": "boolean",
            "description": "This field indicates whether or not the file-field's (e.g. algorithm or domain assignment) may be modified during the execution of a profile job when there is a profiling match.",
            "readOnly": true
          }
        },
        "example": {
          "fieldMetadataId": 1,
          "fieldName": "Field",
          "fileName": "File",
          "domainName": "FirstName",
          "algorithmName": "FirstNameAlgorithm",
          "confidence": 100,
          "isProfilerWritable": true
        }
      },
      "ProfileResultFileList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileResultFile"
            }
          }
        }
      },
      "ProfileResultMainframe": {
        "type": "object",
        "properties": {
          "fieldMetadataId": {
            "type": "integer",
            "description": "The ID number of the pii field metadata. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "fieldName": {
            "type": "string",
            "description": "The name of the mainframe file field",
            "readOnly": true
          },
          "fileName": {
            "type": "string",
            "description": "The name of the file.",
            "readOnly": true
          },
          "domainName": {
            "type": "string",
            "description": "The name of the domain assigned to the field.",
            "readOnly": true
          },
          "algorithmName": {
            "type": "string",
            "description": "The name of the algorithm assigned to the field.",
            "readOnly": true
          },
          "confidence": {
            "type": "integer",
            "description": "The confidence level.",
            "format": "int32",
            "readOnly": true
          },
          "isProfilerWritable": {
            "type": "boolean",
            "description": "This field indicates whether or not the file-field's (e.g. algorithm or domain assignment) may be modified during the execution of a profile job when there is a profiling match.",
            "readOnly": true
          }
        },
        "example": {
          "fieldMetadataId": 1,
          "fieldName": "Field",
          "fileName": "File",
          "domainName": "FirstName",
          "algorithmName": "FirstNameAlgorithm",
          "confidence": 100,
          "isProfilerWritable": true
        }
      },
      "ProfileResultMainframeList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileResultMainframe"
            }
          }
        }
      },
      "ProfileSet": {
        "required": [
          "profileSetName"
        ],
        "type": "object",
        "properties": {
          "profileSetId": {
            "type": "integer",
            "description": "The ID number of the profile set. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "profileSetName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the profile set; it must be unique."
          },
          "profileExpressionIds": {
            "type": "array",
            "description": "Profile sets with profile expressions can no longer be created.",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "profileTypeExpressionIds": {
            "type": "array",
            "description": "Profile sets with profile expressions can no longer be created.",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "classifierIds": {
            "type": "array",
            "description": "The list of ID numbers that correspond to the profile classifiers that belong in this profile set.",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "createdBy": {
            "maxLength": 255,
            "type": "string",
            "description": "The user that created the profile set. This field is auto-generated by the Masking Engine.",
            "readOnly": true
          },
          "createdTime": {
            "type": "string",
            "description": "The time when the profile set was created. This field is auto-generated by the Masking Engine.",
            "format": "date-time",
            "readOnly": true
          },
          "description": {
            "maxLength": 50,
            "type": "string",
            "description": "A description of the purpose of the profile set."
          },
          "assignmentThreshold": {
            "type": "integer",
            "description": "The confidence threshold that must be met or exceeded for the ASDD profiler to make a domain and algorithm assignment. This must be an integer from 1-100. If not specified, the value defaults to the application setting for ASDD called DefaultAssignmentThreshold.",
            "format": "int32"
          }
        },
        "example": {
          "profileSetName": "FINDS_ALL_SENSITIVE_DATA",
          "classifierIds": [
            4,
            8,
            12,
            13,
            27
          ]
        }
      },
      "ProfileSetAssignmentDetail": {
        "type": "object",
        "properties": {
          "assignmentType": {
            "type": "string",
            "description": "The type of profile set usage.",
            "readOnly": true,
            "enum": [
              "DATABASE",
              "FILE",
              "MAINFRAME"
            ]
          },
          "environmentName": {
            "type": "string",
            "description": "The environment where the profile set usage occurs, if any.",
            "readOnly": true
          },
          "environmentId": {
            "type": "integer",
            "description": "The ID of the environment where the profile set usage occurs, if any.",
            "format": "int64",
            "readOnly": true
          },
          "jobName": {
            "type": "string",
            "description": "The job where the profile set usage occurs, if any.",
            "readOnly": true
          },
          "jobId": {
            "type": "integer",
            "description": "The ID of the job where the profile set usage occurs, if any.",
            "format": "int64",
            "readOnly": true
          },
          "rulesetName": {
            "type": "string",
            "description": "The target ruleset where the profile set usage occurs, if any.",
            "readOnly": true
          },
          "rulesetId": {
            "type": "integer",
            "description": "The ID of the target ruleset where the profile set usage occurs, if any.",
            "format": "int64",
            "readOnly": true
          }
        }
      },
      "ProfileSetList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileSet"
            }
          }
        }
      },
      "ProfileSetUsageList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileSetUsageReport"
            }
          }
        }
      },
      "ProfileSetUsageReport": {
        "required": [
          "profileSetId",
          "profileSetName"
        ],
        "type": "object",
        "properties": {
          "profileSetName": {
            "type": "string",
            "description": "The name of the profile set to which this usage report applies.",
            "readOnly": true
          },
          "profileSetId": {
            "type": "integer",
            "description": "The ID of the profile set to which this usage report applies.",
            "format": "int64",
            "readOnly": true
          },
          "jobIds": {
            "type": "array",
            "description": "A list of the IDs of all jobs where the profile set is used.",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "assignmentDetails": {
            "type": "array",
            "description": "A extended usage objects that describe the full path to each profile set usage for all assignments.",
            "items": {
              "$ref": "#/components/schemas/ProfileSetAssignmentDetail"
            }
          }
        }
      },
      "ReidentificationJob": {
        "required": [
          "jobName",
          "rulesetId"
        ],
        "type": "object",
        "properties": {
          "reidentificationJobId": {
            "type": "integer",
            "description": "The ID number of the re-identification job. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "jobName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the re-identification job. Once the re-identification job is created, this field cannot be changed."
          },
          "rulesetId": {
            "type": "integer",
            "description": "The ID of the ruleset that this re-identification job is based on. Once the re-identification job is created, the underlying environment that is inferred from the ruleset will be unchangeable. That is, the job can only be updated to reference a ruleset that is in the same environment as the environment of the original ruleset.",
            "format": "int32"
          },
          "rulesetType": {
            "type": "string",
            "description": "The type of the ruleset that this re-identification job is assigned to.",
            "readOnly": true
          },
          "createdBy": {
            "maxLength": 255,
            "type": "string",
            "description": "The user that created the re-identification job. This field is auto-generated by the Masking Engine.",
            "readOnly": true
          },
          "createdTime": {
            "type": "string",
            "description": "The time when the re-identification job was created. This field is auto-generated by the Masking Engine.",
            "format": "date-time",
            "readOnly": true
          },
          "email": {
            "type": "string",
            "description": "The email address to send job status notifications to; note that the SMTP settings must be configured first to receive notifications."
          },
          "feedbackSize": {
            "minimum": 1,
            "type": "integer",
            "description": "The granularity with which the Masking Engine provides updates on the progress of the re-identification job. For instance, a feedbackSize of 50000 results in log updates whenever 50000 rows are processed during the masking phase.",
            "format": "int32"
          },
          "jobDescription": {
            "maxLength": 255,
            "type": "string",
            "description": "A description of the job."
          },
          "maxMemory": {
            "type": "integer",
            "description": "The maximum amount of memory, in MB, that the re-identification job can consume during execution.",
            "format": "int32"
          },
          "minMemory": {
            "type": "integer",
            "description": "The minimum amount of memory, in MB, that the re-identification job can consume during execution.",
            "format": "int32"
          },
          "multiTenant": {
            "type": "boolean",
            "description": "This field determines whether the re-identification job, after creation, can be executed using a connector that is different from the underlying connector associated with the ruleset that this re-identification job is based on.",
            "default": false
          },
          "numInputStreams": {
            "minimum": 1,
            "type": "integer",
            "description": "This field controls the amount of parallelism that the re-identification job uses to extract out the data to be masked. For instance, when masking a database, specifying 5 input streams results in the re-identification job reading up to 5 database tables in parallel and then masking those 5 streams of data in parallel. The higher the value of this field, the more potential parallelism there will be in the job, but the re-identification job will consume more memory. If the number of input streams exceeds the number of units being masked (e.g. tables or files), then the excess streams will do nothing.",
            "format": "int32",
            "default": 1
          },
          "onTheFlyMasking": {
            "type": "boolean",
            "description": "This field determines whether the re-identification job will be performed InPlace or OnTheFly. The process for InPlace masking is to read out the data to be masked, mask the data, and then load the masked data back into the original data source. The process for OnTheFly masking is to read out the data to be masked, mask the data, and then load the masked data back into a different data source. When masking OnTheFly, the field 'onTheFlyMaskingSource' must be provided.",
            "default": false
          },
          "databaseMaskingOptions": {
            "$ref": "#/components/schemas/DatabaseMaskingOptions"
          },
          "onTheFlyMaskingSource": {
            "$ref": "#/components/schemas/OnTheFlyMaskingSource"
          },
          "failImmediately": {
            "type": "boolean",
            "description": "This field determines whether the masking job will fail immediately or delay failure until job completion when a masking algorithm fails to mask its data. Setting this value to 'false' provides a means for a user to see all cumulative masking errors before the job is marked as failed.",
            "default": false
          },
          "enabledTasks": {
            "type": "array",
            "description": "This field determines what tasks to perform before/after a job from a set of available driver support tasks as indicated by the chosen target ruleset/connector.",
            "items": {
              "$ref": "#/components/schemas/JobTask"
            }
          },
          "streamRowLimit": {
            "minimum": -1,
            "type": "integer",
            "description": "This value constrains the total number of rows that may enter the job for each masking stream. A setting of 0 means unlimited. A value of -1 selects the default value. The default value for this setting varies by job type. The minimum explicit value allowed is 20"
          }
        },
        "example": {
          "jobName": "some_reidentification_job",
          "rulesetId": 7,
          "jobDescription": "This example illustrates a ReidentificationJob with just a handful of the possible fields set. It is meant to exemplify a simple JSON body that can be passed to the endpoint to create a ReidentificationJob.",
          "feedbackSize": 100000,
          "onTheFlyMasking": false,
          "databaseMaskingOptions": {
            "batchUpdate": true,
            "commitSize": 20000,
            "dropConstraints": true,
            "prescript": {
              "name": "my_prescript.sql",
              "contents": "ALTER TABLE table_name DROP COLUMN column_name;"
            },
            "postscript": {
              "name": "my_postscript.sql",
              "contents": "ALTER TABLE table_name ADD column_name VARCHAR(255);"
            }
          }
        }
      },
      "ReidentificationJobList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReidentificationJob"
            }
          }
        }
      },
      "RecordType": {
        "type": "object",
        "properties": {
          "recordTypeId": {
            "type": "integer",
            "description": "The ID number of the record type. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "recordTypeName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the record type."
          },
          "fileFormatId": {
            "type": "integer",
            "description": "The ID number of the file format that the record type refers to.",
            "format": "int32"
          }
        },
        "example": {
          "recordTypeId": "3",
          "recordTypeName": "Record1",
          "fileFormatId": "1"
        }
      },
      "RecordTypeList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecordType"
            }
          }
        }
      },
      "RecordTypeQualifier": {
        "type": "object",
        "properties": {
          "recordTypeQualifierId": {
            "type": "integer",
            "description": "The ID number of the record type qualifier. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "recordTypeId": {
            "type": "integer",
            "description": "The ID number of the record type that the record type qualifier refers to.",
            "format": "int32"
          },
          "pattern": {
            "maxLength": 255,
            "type": "string",
            "description": "The pattern to match against the record type field."
          },
          "fileFieldMetadataId": {
            "type": "integer",
            "description": "The ID of the record type field the record type qualifier refers to.",
            "format": "int32"
          }
        },
        "example": {
          "recordTypeQualifierId": "3",
          "recordTypeId": "1",
          "pattern": "SSN",
          "fileFieldMetadataId": "1"
        }
      },
      "RecordTypeQualifierList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecordTypeQualifier"
            }
          }
        }
      },
      "ResetPassword": {
        "required": [
          "password",
          "token",
          "userName"
        ],
        "type": "object",
        "properties": {
          "userName": {
            "maxLength": 255,
            "type": "string",
            "description": "The username for resetting the password"
          },
          "token": {
            "maxLength": 255,
            "type": "string",
            "description": "The generated token received in the email ",
            "x-is-sensitive": true
          },
          "password": {
            "maxLength": 255,
            "type": "string",
            "description": "The new password for this username.",
            "x-is-sensitive": true
          }
        },
        "example": {
          "userName": "maskinguser",
          "token": "abc",
          "password": "Secret123!"
        }
      },
      "Role": {
        "required": [
          "roleName"
        ],
        "type": "object",
        "properties": {
          "roleId": {
            "type": "integer",
            "description": "The ID of the Role. This field will be generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "roleName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name for this Role. Note that it must be unique."
          },
          "roleType": {
            "type": "string",
            "description": "The type for this Role. All built-in roles will have type as 'DEFAULT' while roles created by user will have type as 'CUSTOM'.",
            "readOnly": true,
            "enum": [
              "CUSTOM",
              "DEFAULT"
            ]
          },
          "environment": {
            "$ref": "#/components/schemas/Privilege"
          },
          "connector": {
            "$ref": "#/components/schemas/Privilege"
          },
          "ruleset": {
            "$ref": "#/components/schemas/Privilege"
          },
          "inventory": {
            "$ref": "#/components/schemas/Privilege"
          },
          "profileJob": {
            "$ref": "#/components/schemas/Privilege"
          },
          "maskingJob": {
            "$ref": "#/components/schemas/Privilege"
          },
          "tokenizeJob": {
            "$ref": "#/components/schemas/Privilege"
          },
          "reidentifyJob": {
            "$ref": "#/components/schemas/Privilege"
          },
          "domain": {
            "$ref": "#/components/schemas/Privilege"
          },
          "algorithm": {
            "$ref": "#/components/schemas/Privilege"
          },
          "jdbcDriver": {
            "$ref": "#/components/schemas/Privilege"
          },
          "passwordVault": {
            "$ref": "#/components/schemas/Privilege"
          },
          "plugin": {
            "$ref": "#/components/schemas/Privilege"
          },
          "classifier": {
            "$ref": "#/components/schemas/Privilege"
          },
          "profileSet": {
            "$ref": "#/components/schemas/Privilege"
          },
          "fileFormat": {
            "$ref": "#/components/schemas/Privilege"
          },
          "user": {
            "$ref": "#/components/schemas/Privilege"
          },
          "diagnostic": {
            "$ref": "#/components/schemas/Privilege"
          },
          "inventoryReport": {
            "$ref": "#/components/schemas/Privilege"
          },
          "approveInventories": {
            "$ref": "#/components/schemas/Privilege"
          }
        },
        "example": {
          "roleName": "NewRole",
          "environment": {
            "copy": true,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": false,
            "update": true,
            "view": true
          },
          "connector": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": false,
            "update": true,
            "view": true
          },
          "ruleset": {
            "copy": true,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": false,
            "update": true,
            "view": true
          },
          "inventory": {
            "copy": false,
            "create": false,
            "delete": false,
            "export": true,
            "import": true,
            "run": false,
            "update": true,
            "view": true
          },
          "profileJob": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": true,
            "update": true,
            "view": true
          },
          "maskingJob": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": true,
            "update": true,
            "view": true
          },
          "tokenizeJob": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": true,
            "update": true,
            "view": true
          },
          "reidentifyJob": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": true,
            "update": true,
            "view": true
          },
          "domain": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": false,
            "update": true,
            "view": true
          },
          "algorithm": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": false,
            "update": true,
            "view": true
          },
          "jdbcDriver": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": false,
            "update": true,
            "view": true
          },
          "passwordVault": {
            "copy": false,
            "create": false,
            "delete": false,
            "export": false,
            "import": false,
            "run": false,
            "update": false,
            "view": false
          },
          "plugin": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": false,
            "update": true,
            "view": true
          },
          "classifier": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": false,
            "update": true,
            "view": true
          },
          "profileSet": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": false,
            "update": true,
            "view": true
          },
          "fileFormat": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": false,
            "update": false,
            "view": true
          },
          "user": {
            "copy": false,
            "create": true,
            "delete": true,
            "export": false,
            "import": false,
            "run": false,
            "update": true,
            "view": true
          },
          "diagnostic": {
            "copy": false,
            "create": false,
            "delete": false,
            "export": false,
            "import": false,
            "run": false,
            "update": false,
            "view": true
          },
          "inventoryReport": {
            "copy": false,
            "create": false,
            "delete": false,
            "export": false,
            "import": false,
            "run": false,
            "update": false,
            "view": true
          },
          "approveInventories": {
            "copy": false,
            "create": false,
            "delete": false,
            "export": false,
            "import": false,
            "run": false,
            "update": false,
            "view": true
          }
        }
      },
      "SecureLookupExtension": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AlgorithmExtension"
          },
          {
            "type": "object",
            "properties": {
              "fileReferenceId": {
                "type": "string",
                "description": "The reference URI value returned from the endpoint for uploading files to the Masking Engine."
              },
              "latestKeyResetTime": {
                "type": "string",
                "description": "The last time the algorithm's key was randomized. This changes the masked results of the algorithm.",
                "format": "date-time",
                "readOnly": true
              }
            }
          }
        ]
      },
      "SegmentMappingExtension": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AlgorithmExtension"
          },
          {
            "type": "object",
            "properties": {
              "preservedRanges": {
                "type": "array",
                "description": "List of character {offset, length} values specifying ranges of the real value to preserve. Offsets begin at 0",
                "items": {
                  "$ref": "#/components/schemas/SegmentMappingPreservedRange"
                }
              },
              "ignoreCharacters": {
                "type": "array",
                "description": "List of decimal values specifying UTF-16 codepoints of characters to ignore (not mask, not count as part of any segment) in the real value. For example, 65 would ignore 'A'",
                "items": {
                  "type": "integer"
                }
              },
              "segments": {
                "maxItems": 36,
                "minItems": 2,
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SegmentMappingSegment"
                }
              },
              "segmentsGroupLength": {
                "type": "array",
                "description": "The array to hold UI display length of each Segment group.",
                "items": {
                  "type": "integer"
                }
              },
              "errorHandlingMode": {
                "type": "string",
                "description": "The behavior should a non-conformant, segment mapping data pattern be encountered by the algorithm.",
                "enum": [
                  "DEFAULT",
                  "DONT_MASK",
                  "FAIL",
                  "NULLIFY"
                ],
                "default": "DEFAULT"
              }
            }
          }
        ]
      },
      "SegmentMappingPreservedRange": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "description": "The character offset of the range of input to preserve"
          },
          "length": {
            "type": "integer",
            "description": "The character length of the range of input to preserve"
          }
        }
      },
      "SegmentMappingSegment": {
        "type": "object",
        "properties": {
          "length": {
            "maximum": 4,
            "minimum": 1,
            "type": "integer",
            "description": "The length of the segment in digits. This must be 1 for alpha-numeric segments"
          },
          "minInt": {
            "maximum": 9999,
            "minimum": 0,
            "type": "integer",
            "description": "The minimum value of the integer output range of the mapping function"
          },
          "maxInt": {
            "maximum": 9999,
            "minimum": 0,
            "type": "integer",
            "description": "The maximum value of the integer output range of the mapping function"
          },
          "minChar": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "The minimum value of the character output range of the mapping function"
          },
          "maxChar": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "The maximum value of the character output range of the mapping function"
          },
          "explicitRange": {
            "type": "string",
            "description": "Explicitly specify the output range. Format depends on segment type and size"
          },
          "minRealInt": {
            "maximum": 9999,
            "minimum": 0,
            "type": "integer",
            "description": "The minimum value of the integer range specifying which real values will be masked"
          },
          "maxRealInt": {
            "maximum": 9999,
            "minimum": 0,
            "type": "integer",
            "description": "The maximum value of the integer range specifying which real values will be masked"
          },
          "minRealChar": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "The minimum value of the character range specifying which real values will be masked"
          },
          "maxRealChar": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "The maximum value of the character range specifying which real values will be masked"
          },
          "explicitRealRange": {
            "type": "string",
            "description": "Explicitly specify the range of input values that should be masked. Format depends on segment type and size"
          }
        }
      },
      "SshKey": {
        "type": "object",
        "properties": {
          "sshKeyName": {
            "type": "string",
            "description": "The name of the SSH key. This field will match the file name of the SSH key as it exists on the file system.",
            "readOnly": true
          }
        }
      },
      "StringIdentifier": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ObjectIdentifier"
          },
          {
            "required": [
              "id"
            ],
            "type": "object",
            "properties": {
              "id": {
                "maxLength": 50,
                "type": "string"
              }
            }
          }
        ]
      },
      "SystemInformation": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string",
            "description": "The current version of the Masking Engine."
          },
          "build": {
            "type": "string",
            "description": "The current build of the Masking Engine."
          },
          "latestGlobalKeyResetTime": {
            "type": "string",
            "description": "The latest time the global encryption key has been regenerated."
          },
          "patentNumbers": {
            "type": "array",
            "description": "The patent numbers for the Masking Engine.",
            "items": {
              "type": "string"
            }
          },
          "totalAllocatedMemoryForJobs": {
            "type": "number",
            "description": "The total memory size in MB allocated for running jobs on the Masking Engine."
          },
          "totalAvailableCores": {
            "type": "integer",
            "description": "The total number of processors available to the Masking Engine."
          },
          "totalTempFileSpace": {
            "type": "number",
            "description": "The total number of temporary file space available in B (bytes) on the Masking Engine."
          },
          "totalPermFileSpace": {
            "type": "number",
            "description": "The total number of permanent file space available in B (bytes) on the Masking Engine."
          },
          "latestApiVersion": {
            "type": "string",
            "description": "The latest API version supported on the Masking Engine."
          },
          "isContainerised": {
            "type": "boolean",
            "description": "Returns if compliance engine is running in containerized mode."
          },
          "isLDAPEnabled": {
            "type": "boolean",
            "description": "Returns true if application settings LDAP is set to enabled."
          },
          "isSSOEnabled": {
            "type": "boolean",
            "description": "Returns true if SSO is enabled."
          }
        },
        "example": {
          "version": "5.2.0.0",
          "build": "29ab20c8501dc521d8cddc24e39c1f4f1846e6b5",
          "latestGlobalKeyResetTime": "Mon, 4 Jun 2018 15:35:48 +0000",
          "patentNumbers": [
            "U.S. Patent No 8,522,016",
            "U.S. Patent No 8,533,470",
            "U.S. Patent No 20,140,032,928"
          ],
          "totalAvailableMemoryForJobs": "30720",
          "totalAllocatedMemoryForJobs": "20480",
          "totalTempFileSpace": "5000000000",
          "totalPermFileSpace": "5000000000",
          "totalAvailableCores": "8",
          "latestApiVersion": "v5.1.6"
        }
      },
      "TableMetadata": {
        "required": [
          "rulesetId",
          "tableName"
        ],
        "type": "object",
        "properties": {
          "tableMetadataId": {
            "type": "integer",
            "description": "The ID of the table metadata. This field is set by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "tableName": {
            "maxLength": 240,
            "type": "string",
            "description": "The name of the table metadata. This name must match the name of a table in the ruleset it is created on. This name must be unique for the given ruleset; in other words, the same table cannot be added to a ruleset more than once."
          },
          "rulesetId": {
            "type": "integer",
            "description": "The ID of the ruleset to create the table metadata on.",
            "format": "int32"
          },
          "customSql": {
            "type": "string",
            "description": "Custom SQL for the table."
          },
          "whereClause": {
            "maxLength": 5000,
            "type": "string",
            "description": "SQL where clause for the table."
          },
          "havingClause": {
            "maxLength": 200,
            "type": "string",
            "description": "SQL having clause for the table."
          },
          "keyColumn": {
            "maxLength": 1024,
            "type": "string",
            "description": "Key Column for the table."
          },
          "isMasked": {
            "type": "boolean",
            "description": "This field is true if one or more data columns associated with this table have a masking assignment, and false otherwise. Results may be filtered by this field using the search API.",
            "readOnly": true
          },
          "rowCount": {
            "type": "integer",
            "description": "The last known row count of the table. This value is updated during rule set refresh and when a masking job is executed.",
            "format": "int64",
            "readOnly": true
          },
          "lastRefreshTime": {
            "type": "string",
            "description": "The last time the table and column metadata for this rule set were refreshed.",
            "format": "date-time",
            "readOnly": true
          },
          "lastRowCountTime": {
            "type": "string",
            "description": "The last time table row counts for this rule set were fully refreshed.",
            "format": "date-time",
            "readOnly": true
          }
        },
        "example": {
          "tableName": "profile",
          "rulesetId": 1
        }
      },
      "TableMetadataList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TableMetadata"
            }
          }
        }
      },
      "TableMetadataBulkInput": {
        "required": [
          "tableMetadata"
        ],
        "type": "object",
        "properties": {
          "tableMetadata": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TableMetadata"
            }
          }
        },
        "example": {
          "tableMetadata": [
            {
              "tableName": "profile",
              "rulesetId": 2
            },
            {
              "tableName": "address",
              "rulesetId": 2
            },
            {
              "tableName": "users",
              "rulesetId": 2
            }
          ]
        }
      },
      "TableMetadataUpdateAllInput": {
        "type": "object",
        "properties": {
          "keyColumn": {
            "type": "string",
            "description": "Key Column for the table. If the table has multiple key columns, they should be separated by comma."
          },
          "whereClause": {
            "type": "string",
            "description": "SQL where clause for the table."
          }
        },
        "example": {
          "keyColumn": "id, name",
          "whereClause": "id > 100"
        }
      },
      "TableMetadataCustomSQL": {
        "type": "object",
        "properties": {
          "customSql": {
            "type": "string",
            "description": "Custom SQL for the table."
          }
        },
        "example": {
          "customSql": "SELECT FROM public table1"
        }
      },
      "TestConnectorResponse": {
        "type": "object",
        "properties": {
          "response": {
            "type": "string",
            "description": "Success or failure of the connection test."
          }
        }
      },
      "TokenizationExtension": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AlgorithmExtension"
          },
          {
            "type": "object",
            "properties": {
              "latestKeyResetTime": {
                "type": "string",
                "description": "The last time the algorithm's key was randomized. This changes the masked results of the algorithm.",
                "format": "date-time",
                "readOnly": true
              }
            }
          }
        ]
      },
      "TokenizationJob": {
        "required": [
          "jobName",
          "rulesetId"
        ],
        "type": "object",
        "properties": {
          "tokenizationJobId": {
            "type": "integer",
            "description": "The ID number of the tokenization job. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "jobName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the tokenization job. Once the tokenization job is created, this field cannot be changed."
          },
          "rulesetId": {
            "type": "integer",
            "description": "The ID of the ruleset that this tokenization job is based on. Once the tokenization job is created, the underlying environment that is inferred from the ruleset will be unchangeable. That is, the job can only be updated to reference a ruleset that is in the same environment as the environment of the original ruleset.",
            "format": "int32"
          },
          "rulesetType": {
            "type": "string",
            "description": "The type of the ruleset that this tokenization job is assigned to.",
            "readOnly": true
          },
          "createdBy": {
            "maxLength": 255,
            "type": "string",
            "description": "The user that created the tokenization job. This field is auto-generated by the Masking Engine.",
            "readOnly": true
          },
          "createdTime": {
            "type": "string",
            "description": "The time when the tokenization job was created. This field is auto-generated by the Masking Engine.",
            "format": "date-time",
            "readOnly": true
          },
          "email": {
            "type": "string",
            "description": "The email address to send job status notifications to; note that the SMTP settings must be configured first to receive notifications."
          },
          "feedbackSize": {
            "minimum": 1,
            "type": "integer",
            "description": "The granularity with which the Masking Engine provides updates on the progress of the tokenization job. For instance, a feedbackSize of 50000 results in log updates whenever 50000 rows are processed during the masking phase.",
            "format": "int32"
          },
          "jobDescription": {
            "maxLength": 255,
            "type": "string",
            "description": "A description of the job."
          },
          "maxMemory": {
            "type": "integer",
            "description": "The maximum amount of memory, in MB, that the tokenization job can consume during execution.",
            "format": "int32"
          },
          "minMemory": {
            "type": "integer",
            "description": "The minimum amount of memory, in MB, that the tokenization job can consume during execution.",
            "format": "int32"
          },
          "multiTenant": {
            "type": "boolean",
            "description": "This field determines whether the tokenization job, after creation, can be executed using a connector that is different from the underlying connector associated with the ruleset that this tokenization job is based on.",
            "default": false
          },
          "numInputStreams": {
            "minimum": 1,
            "type": "integer",
            "description": "This field controls the amount of parallelism that the tokenization job uses to extract out the data to be masked. For instance, when masking a database, specifying 5 input streams results in the tokenization job reading up to 5 database tables in parallel and then masking those 5 streams of data in parallel. The higher the value of this field, the more potential parallelism there will be in the job, but the tokenization job will consume more memory. If the number of input streams exceeds the number of units being masked (e.g. tables or files), then the excess streams will do nothing.",
            "format": "int32",
            "default": 1
          },
          "onTheFlyMasking": {
            "type": "boolean",
            "description": "This field determines whether the tokenization job will be performed InPlace or OnTheFly. The process for InPlace masking is to read out the data to be masked, mask the data, and then load the masked data back into the original data source. The process for OnTheFly masking is to read out the data to be masked, mask the data, and then load the masked data back into a different data source. When masking OnTheFly, the field 'onTheFlyMaskingSource' must be provided.",
            "default": false
          },
          "databaseMaskingOptions": {
            "$ref": "#/components/schemas/DatabaseMaskingOptions"
          },
          "onTheFlyMaskingSource": {
            "$ref": "#/components/schemas/OnTheFlyMaskingSource"
          },
          "failImmediately": {
            "type": "boolean",
            "description": "This field determines whether the masking job will fail immediately or delay failure until job completion when a masking algorithm fails to mask its data. Setting this value to 'false' provides a means for a user to see all cumulative masking errors before the job is marked as failed.",
            "default": false
          },
          "enabledTasks": {
            "type": "array",
            "description": "This field determines what tasks to perform before/after a job from a set of available driver support tasks as indicated by the chosen target ruleset/connector.",
            "items": {
              "$ref": "#/components/schemas/JobTask"
            }
          },
          "streamRowLimit": {
            "minimum": -1,
            "type": "integer",
            "description": "This value constrains the total number of rows that may enter the job for each masking stream. A setting of 0 means unlimited. A value of -1 selects the default value. The default value for this setting varies by job type. The minimum explicit value allowed is 20"
          }
        },
        "example": {
          "jobName": "some_tokenization_job",
          "rulesetId": 7,
          "jobDescription": "This example illustrates a TokenizationJob with just a handful of the possible fields set. It is meant to exemplify a simple JSON body that can be passed to the endpoint to create a TokenizationJob.",
          "feedbackSize": 100000,
          "onTheFlyMasking": false,
          "databaseMaskingOptions": {
            "batchUpdate": true,
            "commitSize": 20000,
            "dropConstraints": true,
            "prescript": {
              "name": "my_prescript.sql",
              "contents": "ALTER TABLE table_name DROP COLUMN column_name;"
            },
            "postscript": {
              "name": "my_postscript.sql",
              "contents": "ALTER TABLE table_name ADD column_name VARCHAR(255);"
            }
          }
        }
      },
      "TokenizationJobList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TokenizationJob"
            }
          }
        }
      },
      "User": {
        "required": [
          "email",
          "firstName",
          "isAdmin",
          "lastName",
          "userName",
          "userStatus"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The ID of the User. This field will be generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "userName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name for this User. Note that it must be unique among Users."
          },
          "password": {
            "type": "string",
            "description": "The password for this User. NOTE: For updates, this field does not have to be set. If no password is provided on an update, then the current password will persist.",
            "x-is-sensitive": true
          },
          "firstName": {
            "maxLength": 255,
            "type": "string",
            "description": "The first name of this User. This does not need to match the user name."
          },
          "lastName": {
            "maxLength": 255,
            "type": "string",
            "description": "The last name of this User. This does not need to match the user name."
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The email address for this User."
          },
          "isAdmin": {
            "type": "boolean",
            "description": "True for an administrative User, false for a non-administrative User."
          },
          "showWelcome": {
            "type": "boolean",
            "description": "Flag to enable and disable welcome page for user, default true for a newly created User.",
            "default": true
          },
          "userStatus": {
            "type": "string",
            "description": "Status of user account.",
            "enum": [
              "ACTIVE",
              "LOCKED",
              "DISABLED"
            ]
          },
          "disableReason": {
            "maxLength": 255,
            "type": "string",
            "description": "The reason why the user's account was locked."
          },
          "nonAdminProperties": {
            "$ref": "#/components/schemas/NonAdminProperties"
          },
          "apiAccess": {
            "type": "boolean",
            "description": "For use with SSO only. Flag to enable and disable api access for users. For newly created users, the value defaults to true when SSO is disabled and false when SSO is enabled, for both admins and non-admins. Omitting this field on an update to an existing user leaves its current value unchanged. Explicitly setting this value is only allowed when SSO is enabled and only by admins; an admin's value cannot be explicitly set to false this way except with DCT enabled, though it may still default to false for a newly created admin as described above. When SSO is disabled, the value is ignored and the user will be granted API access."
          },
          "principal": {
            "type": "string",
            "description": "Identifies this user on external identity services. Used for OAuth2 API authentication when the principal is selected as the field to match users with access tokens."
          }
        },
        "example": {
          "userName": "DelphixUser1",
          "password": "Password_123",
          "firstName": "First",
          "lastName": "Last",
          "email": "user@delphix.com",
          "isAdmin": false,
          "showWelcome": true,
          "userStatus": "ACTIVE",
          "nonAdminProperties": {
            "roleId": 1,
            "environmentIds": [
              1,
              3,
              7
            ]
          }
        }
      },
      "UserList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          }
        }
      },
      "UserProperties": {
        "required": [
          "showWelcome"
        ],
        "type": "object",
        "properties": {
          "showWelcome": {
            "type": "boolean",
            "description": "Flag to enable or disable the welcome page for users, with the default set to true for newly created users.",
            "default": true
          }
        },
        "example": {
          "showWelcome": true
        }
      },
      "ColumnMetadataDetailList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ColumnMetadataDetail"
            }
          }
        }
      },
      "ConnectionPropertiesList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectionProperties"
            }
          }
        }
      },
      "TableMetadataBulkDeltaInput": {
        "type": "object",
        "properties": {
          "allOthers": {
            "type": "object",
            "properties": {
              "update": {
                "$ref": "#/components/schemas/TableMetadata"
              },
              "delete": {
                "type": "boolean",
                "description": "Delete all the remaining tables in the ruleset. Cannot be used with 'allOthers.update'.",
                "default": false
              },
              "filter": {
                "type": "string",
                "description": "Filter the tables to update/delete based on the table name."
              },
              "exclude": {
                "type": "array",
                "description": "Exclude the tables from applying 'allOthers.delete' or 'allOthers.update'.",
                "items": {
                  "$ref": "#/components/schemas/TableMetadata"
                }
              }
            }
          },
          "add": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TableMetadata"
            }
          },
          "update": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TableMetadata"
            }
          },
          "delete": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TableMetadata"
            }
          }
        }
      },
      "FileUploadBody": {
        "required": [
          "file"
        ],
        "type": "object",
        "properties": {
          "file": {
            "type": "string",
            "description": "The rule-set exported CSV file to be imported.",
            "format": "binary"
          }
        }
      },
      "ExecutionComponentLog": {
        "type": "object",
        "properties": {
          "executionId": {
            "type": "integer",
            "description": "The ID of the execution for the referenced job. This field is generated by the Masking Engine when a job is run.",
            "format": "int32",
            "readOnly": true
          },
          "componentId": {
            "type": "integer",
            "description": "The ID of the execution component.",
            "format": "int32",
            "readOnly": true
          },
          "componentName": {
            "maxLength": 255,
            "type": "string",
            "description": "Name of the execution component"
          },
          "fileDownloadId": {
            "type": "string",
            "description": "This value is returned on GET. It can be fed into the file-downloads endpoint.",
            "readOnly": true
          }
        },
        "example": {
          "executionId": 123,
          "componentId": 67,
          "componentName": "table_00",
          "fileDownloadId": "EXECUTION_LOGS-AB8aCbcdDe=="
        }
      },
      "ExecutionLog": {
        "type": "object",
        "properties": {
          "executionId": {
            "type": "integer",
            "description": "The ID of the execution for the referenced job. This field is generated by the Masking Engine when a job is run.",
            "format": "int32"
          },
          "jobId": {
            "type": "integer",
            "description": "The ID of the job that is being executed.",
            "format": "int32"
          },
          "fileDownloadId": {
            "type": "string",
            "description": "This value is returned on GET. It can be fed into the file-downloads endpoint.",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "The status of the execution regarding its completion.",
            "readOnly": true,
            "enum": [
              "CANCELLED",
              "FAILED",
              "QUEUED",
              "RUNNING",
              "SUCCEEDED",
              "WARNING"
            ]
          }
        },
        "example": {
          "executionId": 123,
          "jobId": 167,
          "fileDownloadId": "EXECUTION_LOGS-AB8aCbcdDe==",
          "status": "SUCCEEDED"
        }
      },
      "ExportDependencyGroup": {
        "type": "object",
        "properties": {
          "requestedObject": {
            "$ref": "#/components/schemas/ExportObjectMetadata"
          },
          "dependencies": {
            "type": "array",
            "description": "Transitive dependencies of the requested object, excluding the requested object itself.",
            "items": {
              "$ref": "#/components/schemas/ExportObjectMetadata"
            }
          }
        }
      },
      "FeatureFlagList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeatureFlag"
            }
          }
        }
      },
      "FileFormatBody": {
        "required": [
          "fileFormat",
          "fileFormatType"
        ],
        "type": "object",
        "properties": {
          "fileFormatName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the fileformat to be uploaded, if not provided, the name of the uploaded file will be used.",
            "example": ""
          },
          "fileFormat": {
            "type": "string",
            "description": "The file format to be uploaded. The logical name of the file format will be exactly the name of this uploaded file",
            "format": "binary"
          },
          "fileFormatType": {
            "type": "string",
            "description": "The type of the file format being uploaded",
            "enum": [
              "DELIMITED",
              "FIXED_WIDTH",
              "XML",
              "JSON",
              "PARQUET"
            ]
          }
        }
      },
      "FileFormatCopy": {
        "required": [
          "fileFormatName"
        ],
        "type": "object",
        "properties": {
          "fileFormatName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the new file format."
          },
          "ignoreMaskingAssignments": {
            "type": "boolean",
            "description": "Flag to ignore copying masking assignments. If true, masking assignments will not be copied.",
            "default": false
          }
        },
        "example": {
          "fileFormatName": "",
          "ignoreMaskingAssignments": "false"
        }
      },
      "FileMetadataBulkDeltaInput": {
        "type": "object",
        "properties": {
          "allOthers": {
            "type": "object",
            "properties": {
              "update": {
                "$ref": "#/components/schemas/FileMetadata"
              },
              "delete": {
                "type": "boolean",
                "description": "Delete all the remaining files in the ruleset. Cannot be used with 'allOthers.update'.",
                "default": false
              },
              "filter": {
                "type": "string",
                "description": "Filter the files to be update/delete based on the file name."
              },
              "exclude": {
                "type": "array",
                "description": "Exclude the files from applying 'allOthers.delete' or 'allOthers.update'.",
                "items": {
                  "$ref": "#/components/schemas/FileMetadata"
                }
              }
            }
          },
          "add": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileMetadata"
            }
          },
          "update": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileMetadata"
            }
          },
          "delete": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileMetadata"
            }
          }
        }
      },
      "FileUploadBody_1": {
        "required": [
          "file"
        ],
        "type": "object",
        "properties": {
          "file": {
            "type": "string",
            "description": "The file to be uploaded.",
            "format": "binary"
          }
        }
      },
      "ImportObjectMetadata": {
        "required": [
          "objectIdentifier",
          "objectType"
        ],
        "type": "object",
        "properties": {
          "objectIdentifier": {
            "type": "object",
            "properties": {},
            "description": "Identifier of the imported object on the engine where it was exported from."
          },
          "importedObjectIdentifier": {
            "type": "object",
            "properties": {},
            "description": "Identifier of the imported object on this engine."
          },
          "objectType": {
            "type": "string",
            "description": "Type of object to export",
            "enum": [
              "ALGORITHM_PLUGIN",
              "ALGORITHM_REFERENCE",
              "APPLICATION_SETTINGS",
              "BINARYLOOKUP",
              "CLASSIFIER",
              "CLASSIFIER_REFERENCE",
              "CLEANSING",
              "CREDENTIAL_PATH",
              "DATABASE_CONNECTOR",
              "DATABASE_RULESET",
              "DATABASE_RULESET_REFERENCE",
              "DATASET_CONNECTOR",
              "DATASET_RULESET",
              "DATASET_FORMAT",
              "DATA_TABLE",
              "DATE_SHIFT",
              "DOMAIN",
              "DOMAIN_REFERENCE",
              "DRIVER_SUPPORT_PLUGIN",
              "ENVIRONMENT",
              "FILE_CONNECTOR",
              "FILE_FORMAT",
              "FILE_RULESET",
              "GLOBAL_OBJECT",
              "JDBC_DRIVER",
              "KEY",
              "LICENSE_INFO",
              "LOOKUP",
              "MAPPLET",
              "MASKING_JOB",
              "MIN_MAX",
              "MOUNT_INFORMATION",
              "PASSWORD_VAULT",
              "PROFILE_EXPRESSION",
              "PROFILE_TYPE_EXPRESSION",
              "PROFILE_TYPE_EXPRESSION_REFERENCE",
              "PROFILE_EXPRESSION_REFERENCE",
              "PROFILE_JOB",
              "PROFILE_SET",
              "PROFILE_SET_REFERENCE",
              "REDACTION",
              "REIDENTIFICATION_JOB",
              "SEGMENT",
              "SOURCE_DATABASE_CONNECTOR",
              "SOURCE_DATASET_CONNECTOR",
              "SOURCE_FILE_CONNECTOR",
              "TOKENIZATION",
              "TOKENIZATION_JOB",
              "USER_ALGORITHM"
            ]
          },
          "importStatus": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "SUCCESS",
              "FAILED",
              "SKIPPED"
            ]
          },
          "failureMessage": {
            "type": "string",
            "readOnly": true
          }
        }
      },
      "PluginExport": {
        "type": "object",
        "properties": {
          "fileDownloadId": {
            "type": "string",
            "description": "The download identifier for the exported JAR. Pass it to GET /file-downloads/{fileDownloadId} to download the file.",
            "readOnly": true
          }
        }
      },
      "LicenseBody": {
        "required": [
          "jdbcDriverId",
          "licenseFile",
          "licenseType"
        ],
        "type": "object",
        "properties": {
          "licenseFile": {
            "type": "string",
            "description": "The license file to be uploaded. The logical name of the license will be exactly the name of this uploaded file",
            "format": "binary"
          },
          "licenseType": {
            "type": "string",
            "description": "The type of the license file being uploaded",
            "enum": [
              "JDBC_DRIVER"
            ]
          },
          "jdbcDriverId": {
            "type": "integer",
            "description": "The ID number of the JDBC driver.",
            "format": "int32"
          }
        }
      },
      "MainframeDatasetFormatBody": {
        "required": [
          "mainframeDatasetFormat"
        ],
        "properties": {
          "mainframeDatasetFormatName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name for the new Mainframe Dataset format. If not provided, the name of the uploaded file will be used."
          },
          "mainframeDatasetFormat": {
            "type": "string",
            "description": "The Mainframe Dataset format to be uploaded. The logical name of the Mainframe Dataset format will be exactly the name of this uploaded Mainframe Dataset file",
            "format": "binary"
          }
        }
      },
      "MainframeDatasetMetadataBulkDeltaInput": {
        "type": "object",
        "properties": {
          "allOthers": {
            "type": "object",
            "properties": {
              "update": {
                "$ref": "#/components/schemas/MainframeDatasetMetadata"
              },
              "delete": {
                "type": "boolean",
                "description": "Delete all the remaining files in the ruleset. Cannot be used with 'allOthers.update'.",
                "default": false
              },
              "filter": {
                "type": "string",
                "description": "Filter the files to update/delete based on the file name."
              },
              "exclude": {
                "type": "array",
                "description": "Exclude the files from applying 'allOthers.delete' or 'allOthers.update'.",
                "items": {
                  "$ref": "#/components/schemas/MainframeDatasetMetadata"
                }
              }
            }
          },
          "add": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainframeDatasetMetadata"
            }
          },
          "update": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainframeDatasetMetadata"
            }
          },
          "delete": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainframeDatasetMetadata"
            }
          }
        }
      },
      "NonConformantDataSampleList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NonConformantDataSample"
            }
          }
        }
      },
      "PluginList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Plugin"
            }
          }
        }
      },
      "RoleList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Role"
            }
          }
        }
      },
      "RulesetDetails": {
        "type": "object",
        "properties": {
          "rulesetId": {
            "type": "integer",
            "description": "The ID number of the ruleset. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "environmentId": {
            "type": "integer",
            "description": "The ID number of the environment. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "rulesetName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the ruleset. This must be unique within an environment.",
            "readOnly": true
          },
          "rulesetType": {
            "type": "string",
            "description": "The type that this ruleset describes.",
            "readOnly": true
          },
          "connectorName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the connector.",
            "readOnly": true
          },
          "connectorId": {
            "type": "integer",
            "description": "The ID number of the connector. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "metaData": {
            "type": "string",
            "description": "The metadata information for the collection, Type of Database in case of data base type collections.",
            "readOnly": true
          },
          "asyncTaskId": {
            "type": "integer",
            "description": "The ID of the AsyncTask. This field will be generated by the Masking Engine and it only available for database rulesets.",
            "format": "int32",
            "readOnly": true
          },
          "asyncStatus": {
            "type": "string",
            "description": "The status of the AsyncTask in regard to its completion and it only available for database rulesets.",
            "readOnly": true,
            "enum": [
              "CANCELLED",
              "FAILED",
              "RUNNING",
              "SUCCEEDED",
              "WAITING"
            ]
          },
          "pluginObjects": {
            "type": "array",
            "description": "List of enabled tasks for the ruleset. If the ruleset is not database type, this field will be empty.",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/PluginObject"
            }
          }
        },
        "example": {
          "rulesetId": 1,
          "environmentId": 1,
          "rulesetName": "DelimitedFileRuleset",
          "rulesetType": "delimitedFile"
        }
      },
      "RulesetDetailsList": {
        "type": "object",
        "properties": {
          "_pageInfo": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "responseList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RulesetDetails"
            }
          }
        }
      },
      "SshKeyBody": {
        "required": [
          "sshKey"
        ],
        "type": "object",
        "properties": {
          "sshKey": {
            "type": "string",
            "description": "The SSH key to be uploaded. The logical name of the SSH key will be exactly the name of this uploaded file",
            "format": "binary"
          }
        }
      },
      "AlgorithmField": {
        "type": "object",
        "properties": {
          "fieldId": {
            "type": "integer",
            "description": "The id of the algorithm field.",
            "format": "int64",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of the algorithm field.",
            "readOnly": true
          },
          "type": {
            "type": "string",
            "description": "The type of value this algorithm field.",
            "readOnly": true,
            "enum": [
              "BIG_DECIMAL",
              "LOCAL_DATE_TIME",
              "STRING",
              "BYTE_BUFFER"
            ]
          },
          "isReadOnly": {
            "type": "boolean",
            "description": "Indicates whether the field is read-only. Read-only fields are taken as input by the masking algorithm but not masked.",
            "readOnly": true
          },
          "isOptional": {
            "type": "boolean",
            "description": "Indicates whether the field is optional. Optional fields do not have to be assigned to a real data field or column in order for a masking assignment to be considered valid.",
            "readOnly": true
          },
          "description": {
            "type": "string",
            "description": "The description of the algorithm field.",
            "readOnly": true
          }
        }
      },
      "EventNameEnum": {
        "type": "string",
        "description": "The name of the server event",
        "enum": [
          "MASKING_EXECUTION_CANCELLED",
          "MASKING_EXECUTION_FAILED",
          "MASKING_EXECUTION_QUEUED",
          "MASKING_EXECUTION_RUNNING",
          "MASKING_EXECUTION_SUCCEEDED",
          "MASKING_EXECUTION_WAITING",
          "MASKING_EXECUTION_WARNING",
          "MASKING_JOB_CREATED",
          "MASKING_JOB_DELETED",
          "MASKING_JOB_UPDATED",
          "PROFILE_EXECUTION_CANCELLED",
          "PROFILE_EXECUTION_FAILED",
          "PROFILE_EXECUTION_QUEUED",
          "PROFILE_EXECUTION_RUNNING",
          "PROFILE_EXECUTION_SUCCEEDED",
          "PROFILE_EXECUTION_WAITING",
          "PROFILE_EXECUTION_WARNING",
          "PROFILE_JOB_CREATED",
          "PROFILE_JOB_DELETED",
          "PROFILE_JOB_UPDATED",
          "TOKENIZE_EXECUTION_CANCELLED",
          "TOKENIZE_EXECUTION_FAILED",
          "TOKENIZE_EXECUTION_QUEUED",
          "TOKENIZE_EXECUTION_RUNNING",
          "TOKENIZE_EXECUTION_SUCCEEDED",
          "TOKENIZE_EXECUTION_WAITING",
          "TOKENIZE_EXECUTION_WARNING",
          "TOKENIZE_JOB_CREATED",
          "TOKENIZE_JOB_DELETED",
          "TOKENIZE_JOB_UPDATED",
          "REIDENTIFY_EXECUTION_CANCELLED",
          "REIDENTIFY_EXECUTION_FAILED",
          "REIDENTIFY_EXECUTION_QUEUED",
          "REIDENTIFY_EXECUTION_RUNNING",
          "REIDENTIFY_EXECUTION_SUCCEEDED",
          "REIDENTIFY_EXECUTION_WAITING",
          "REIDENTIFY_EXECUTION_WARNING",
          "REIDENTIFY_JOB_CREATED",
          "REIDENTIFY_JOB_DELETED",
          "REIDENTIFY_JOB_UPDATED",
          "ASYNC_TASK_RUNNING",
          "ASYNC_TASK_WAITING",
          "ASYNC_TASK_SUCCEEDED",
          "ASYNC_TASK_FAILED",
          "ASYNC_TASK_CANCELLED"
        ]
      },
      "TaskEvents": {
        "type": "object",
        "properties": {
          "event": {
            "maxLength": 255,
            "type": "string",
            "description": "The steps or events a task will perform",
            "readOnly": true
          },
          "order": {
            "type": "integer",
            "description": "execution order of the task events",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "The state of result of the task event",
            "readOnly": true,
            "enum": [
              "CANCELLED",
              "FAILED",
              "QUEUED",
              "RUNNING",
              "SUCCEEDED",
              "SKIPPED",
              "NON_CONFORMANT"
            ]
          }
        }
      },
      "JobTask": {
        "required": [
          "taskId"
        ],
        "type": "object",
        "properties": {
          "taskId": {
            "type": "integer",
            "description": "The object identifier of the DRIVER_SUPPORT_TASK plugin object type found in the response of the plugin API.",
            "format": "int32",
            "readOnly": true
          }
        },
        "example": {
          "taskId": 1
        }
      },
      "NonConformantDataSample": {
        "type": "object",
        "properties": {
          "dataSampleId": {
            "type": "integer",
            "description": "The ID of the non-conformant data sample.",
            "format": "int64",
            "readOnly": true
          },
          "executionEventId": {
            "type": "integer",
            "description": "The ID of the execution event this sample is associated with.",
            "format": "int64",
            "readOnly": true
          },
          "dataSample": {
            "type": "string",
            "description": "The redacted value of the non-conformant field data that could not be masked by the assigned algorithm.",
            "readOnly": true
          },
          "count": {
            "type": "integer",
            "description": "The approximate number of times this data pattern was encountered.",
            "format": "int64",
            "readOnly": true
          }
        },
        "example": {
          "dataSampleId": 1,
          "executionEventId": 1,
          "dataSample": "NNNNNNNNNN",
          "count": 1
        }
      },
      "ColumnMetadataDetail": {
        "required": [
          "isProfilerWritable"
        ],
        "type": "object",
        "properties": {
          "columnMetadataId": {
            "type": "integer",
            "description": "The ID number of the column metadata. This field is auto-generated by the Masking Engine.",
            "format": "int64",
            "readOnly": true
          },
          "columnName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the column, as determined by the underlying table.",
            "readOnly": true
          },
          "tableMetadataId": {
            "type": "integer",
            "description": "The ID number of the table metadata that this column is a part of. This field is auto-generated by the Masking Engine.",
            "format": "int32",
            "readOnly": true
          },
          "tableName": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the table metadata. This name must match the name of a table in the ruleset it is created on. This name must be unique for the given ruleset; in other words, the same table cannot be added to a ruleset more than once.",
            "readOnly": true
          },
          "algorithmName": {
            "maxLength": 500,
            "type": "string",
            "description": "The name of the algorithm assigned to this column. Columns that are unmasked should have this property unset, in addition to having 'domainName' unset. If this field is set, then the 'domainName' must also be specified."
          },
          "algorithmFieldId": {
            "type": "integer",
            "description": "The ID number of the algorithm field that is associated with this column.",
            "format": "int64"
          },
          "algorithmFieldName": {
            "type": "string",
            "description": "The name of the algorithm field that is associated with this column.",
            "readOnly": true
          },
          "algorithmGroupNo": {
            "type": "integer",
            "description": "The group number of algorithm to identify a set of columns associated with one instance of algorithm.",
            "format": "int64"
          },
          "domainName": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the domain assigned to this column. Columns that are left unmasked should have this property unset. If the 'domainName' is set, but the 'algorithmName' is unset, then the default algorithm corresponding to the 'domainName' will be used."
          },
          "dataType": {
            "maxLength": 50,
            "type": "string",
            "description": "The data type of this column.",
            "readOnly": true
          },
          "dateFormat": {
            "maxLength": 50,
            "type": "string",
            "description": "The date format of the date assigned to this column."
          },
          "columnLength": {
            "type": "integer",
            "description": "The length of the column, in number of characters, as determined by the underlying table.",
            "format": "int32",
            "readOnly": true
          },
          "isMasked": {
            "type": "boolean",
            "description": "This field indicates whether or not a column is being masked. This field is assigned by the Masking Engine to true or false based on whether the column is assigned an algorithm and domain.",
            "readOnly": true
          },
          "isProfilerWritable": {
            "type": "boolean",
            "description": "This field indicates whether or not a column's fields (e.g. algorithm or domain assignment) may be modified during the execution of a profile job when there is a profiling match."
          },
          "isPrimaryKey": {
            "type": "boolean",
            "description": "This field indicates whether or not a column is a primary key. This field is determined by the Masking Engine.",
            "readOnly": true
          },
          "isIdentity": {
            "type": "boolean",
            "description": "This field indicates whether or not a column is an identity column. An identity column differs from a primary key in that its values are managed by the database server and usually cannot be modified. In many cases an identity column is used as a primary key; however, this is not always the case. This field is determined by the Masking Engine.",
            "readOnly": true
          },
          "isIndex": {
            "type": "boolean",
            "description": "This field indicates whether or not a column is an index. This field is determined by the Masking Engine.",
            "readOnly": true
          },
          "isForeignKey": {
            "type": "boolean",
            "description": "This field indicates whether or not a column is a foreign key. This field is determined by the Masking Engine.",
            "readOnly": true
          },
          "nullable": {
            "type": "string",
            "description": "This field indicates whether or not a column is nullable. This field is determined by the Masking Engine."
          },
          "isDocStoreSupported": {
            "type": "boolean",
            "description": "This field indicates whether or not a column supports Document store type.",
            "readOnly": true
          },
          "documentStoreType": {
            "type": "string",
            "description": "This field indicates the type of document stored in the column. Required in case where fileFormatId is provided. Accepted values: ['JSON','XML']"
          },
          "fileFormatId": {
            "type": "integer",
            "description": "The ID number of the file format. Required in case where documentStoreType is provided.",
            "format": "int32"
          },
          "fileFormatName": {
            "type": "string",
            "description": "The name of the file format, as inferred from the uploaded file."
          },
          "notes": {
            "maxLength": 500,
            "type": "string",
            "description": "This field is used to store additional information about the column."
          },
          "domainAssignedBy": {
            "type": "string",
            "description": "This field indicates who assigned the domain to the column.",
            "readOnly": true
          }
        },
        "example": {
          "algorithmName": "FirstNameLookup",
          "domainName": "FIRST_NAME",
          "isProfilerWritable": false
        }
      },
      "S3CompatibleDetails": {
        "type": "object",
        "properties": {
          "bucketName": {
            "maxLength": 255,
            "type": "string",
            "description": "This field is the bucket name for s3 compatible storage."
          },
          "region": {
            "maxLength": 100,
            "type": "string",
            "description": "This field is the region of s3 compatible storage bucket."
          },
          "accessKey": {
            "maxLength": 255,
            "type": "string",
            "description": "This field is the access key to access the s3 compatible storage object."
          },
          "secretKey": {
            "maxLength": 255,
            "type": "string",
            "description": "This field is the secret key to access the s3 compatible storage object."
          },
          "prefix": {
            "maxLength": 1024,
            "type": "string",
            "description": "This field is the prefix for filteration."
          },
          "delimiter": {
            "maxLength": 1024,
            "type": "string",
            "description": "This field is the delimiter for filteration."
          },
          "serviceEndpoint": {
            "maxLength": 1024,
            "type": "string",
            "description": "This field is the service endpoint for s3 compatible storage."
          }
        }
      },
      "AzureBlobStorageDetails": {
        "type": "object",
        "properties": {
          "accountName": {
            "maxLength": 255,
            "type": "string",
            "description": "This field is the account name for the Azure Storage account."
          },
          "containerName": {
            "maxLength": 255,
            "type": "string",
            "description": "This field is the name of the container in the Azure Storage account."
          },
          "accessKey": {
            "maxLength": 255,
            "type": "string",
            "description": "This field is the access key to access the Azure Storage account."
          },
          "tenantId": {
            "maxLength": 255,
            "type": "string",
            "description": "The Azure Active Directory tenant (directory) ID used for Service Principal authentication."
          },
          "clientId": {
            "maxLength": 255,
            "type": "string",
            "description": "The application (client) ID of the Azure AD Service Principal."
          },
          "clientSecret": {
            "maxLength": 2048,
            "type": "string",
            "description": "The client secret of the Azure AD Service Principal. Write-only; never returned in GET responses.",
            "writeOnly": true
          },
          "prefix": {
            "maxLength": 1024,
            "type": "string",
            "description": "This field is the prefix for filtering blobs in the container."
          },
          "delimiter": {
            "maxLength": 1024,
            "type": "string",
            "description": "This field is the delimiter for filtering blobs in the container."
          },
          "authType": {
            "maxLength": 50,
            "type": "string",
            "description": "This field is the type of azure authentication. Supported values: AZURE_SECRET, AZURE_MANAGED_IDENTITY, AZURE_SERVICE_PRINCIPAL."
          }
        }
      },
      "ExportResponseMetadataItem": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ExportObjectMetadata"
          }
        ]
      }
    },
    "securitySchemes": {
      "api_key": {
        "type": "apiKey",
        "name": "Authorization",
        "in": "header"
      }
    }
  }
}